runtime(vim): Update base syntax, match generic functions Commit: https://github.com/vim/vim/commit/72473ce9f8e111072360a7589e2c5bee079305da Author: Doug Kearns <dougkea...@gmail.com> Date: Wed Jul 23 21:25:57 2025 +0200
runtime(vim): Update base syntax, match generic functions Match Vim9 generic functions, added in https://github.com/vim/vim/issues/17313. closes: #17722 Signed-off-by: Doug Kearns <dougkea...@gmail.com> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/runtime/syntax/generator/vim.vim.base b/runtime/syntax/generator/vim.vim.base index 63c1bb5c9..7a3e45905 100644 --- a/runtime/syntax/generator/vim.vim.base +++ b/runtime/syntax/generator/vim.vim.base @@ -2,7 +2,7 @@ " Language: Vim script " Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com> " Doug Kearns <dougkea...@gmail.com> -" Last Change: 2025 Jul 18 +" Last Change: 2025 Jul 23 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -267,6 +267,8 @@ syn match vimVimVar "\<v:" nextgroup=vimSubscript,vimVimVarName,vimVarNameError syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscript,vimOptionVarName,vimVarNameError syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar +Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs + Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\==" Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.=" Vim9 syn match vim9LhsVariable "\s\=\%([bwgt]:\)\=\h[a-zA-Z0-9#_]*\ze\s\+=<<" skipwhite nextgroup=vimLetHeredoc contains=vimVarScope @@ -468,7 +470,7 @@ syn match vimFunctionName contained \ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag syn match vimDefName contained \ "\%(<[sS][iI][dD]>\|[bwglstav]:\)\=\%([[:alnum:]_#.]\+\|{.\{-1,}}\)\+" - \ nextgroup=vimDefParams,vimCmdSep,vimComment,vim9Comment + \ nextgroup=vimDefTypeParams,vimDefParams,vimCmdSep,vimComment,vim9Comment \ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag syn match vimFunction "\<fu\%[nction]\>" skipwhite nextgroup=vimFunctionBang,vimFunctionName,vimFunctionPattern,vimCmdSep,vimComment @@ -498,8 +500,15 @@ syn region vimDefParams contained \ end=")" \ skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError \ contains=vimDefParam,vim9Comment,vimFunctionParamEquals,vimOperParen +syn region vimDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vimDefParams + \ contains=vim9DefTypeParam syn match vimFunctionParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFunctionParamEquals syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFunctionParamEquals +syn match vim9DefTypeParam contained "\<\u\w*\>" syn match vimFunctionParamEquals contained "=" skipwhite nextgroup=@vimExprList syn match vimFunctionMod contained "\<\%(abort\|closure\|dict\|range\)\>" skipwhite skipempty nextgroup=vimFunctionBody,vimFunctionComment,vimEndfunction,vimFunctionMod,vim9CommentError @@ -531,7 +540,7 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' syn region vimDefFold \ start="\<def!" "\ assume no dict literal in curly-brace name expressions - \ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+(" + \ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+[<(]" \ end="^\s*:\=\s*enddef\>" \ contains=vimDef \ extend fold keepend transparent @@ -573,14 +582,20 @@ if s:vim9script " Methods {{{3 syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName - syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName + syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams,vim9MethodDefTypeParams contains=@vim9MethodName syn region vim9MethodDefParams contained \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError \ contains=vimDefParam,vim9Comment,vimFunctionParamEquals + syn region vim9MethodDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9MethodDefParams + \ contains=vim9DefTypeParam syn match vim9ConstructorDefName contained "\<_\=new\w*\>" - \ nextgroup=vim9ConstructorDefParams + \ nextgroup=vim9ConstructorDefParams,vim9ConstuctorDefTypeParams \ contains=@vim9MethodName syn match vim9ConstructorDefParam contained "\<\%(this\.\)\=\h\w*\>" \ skipwhite nextgroup=vimParamType,vimFunctionParamEquals @@ -589,6 +604,12 @@ if s:vim9script \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vimCommentError \ contains=vim9ConstructorDefParam,vim9Comment,vimFunctionParamEquals + syn region vim9ConstuctorDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9ConstructorDefParams + \ contains=vim9DefTypeParam syn region vim9MethodDefReturnType contained \ start=":\%(\s\| \)\@=" @@ -622,8 +643,11 @@ if s:vim9script syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' - syn region vim9MethodDefFold contained start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent - syn region vim9MethodDefFold contained start="^\s*:\=def\s\+_\=new\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent + syn region vim9MethodDefFold contained + \ start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\w*[<(]" + \ end="^\s*:\=enddef\>" + \ contains=vim9MethodDef + \ fold keepend extend transparent endif syn cluster vim9MethodDef contains=vim9MethodDef,vim9MethodDefFold @@ -703,7 +727,7 @@ if s:vim9script syn match vim9InterfaceName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends syn keyword vim9AbstractDef contained def skipwhite nextgroup=vim9AbstractDefName - syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams contains=@vim9MethodName + syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams,vim9AbstractDefTypeParams contains=@vim9MethodName syn region vim9AbstractDefParams contained \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vimDefComment,vim9AbstractDefReturnType,vimCommentError @@ -713,6 +737,12 @@ if s:vim9script \ skipwhite skipnl nextgroup=vimDefComment,vimCommentError \ contains=vimTypeSep \ transparent + syn region vim9AbstractDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9AbstractDefParams + \ contains=vim9DefTypeParam VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent @@ -1431,7 +1461,7 @@ syn match vimBracket contained "[\<>]" syn case match " User Command Highlighting: {{{2 -syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' +syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' " Vim user commands @@ -2088,18 +2118,26 @@ unlet s:interfaces " Function Call Highlighting: {{{2 " (following Gautam Iyer's suggestion) " ========================== -syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName -syn match vimUserFunc contained "\.\@1<=\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen -syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vim9MethodName,vim9Super,vim9This -syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope -syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation +syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName +syn match vimUserFunc contained "\.\@1<=\l\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs +syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vim9MethodName,vim9Super,vim9This +syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen contains=vimVarScope +syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation -Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This -Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName +Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze[<(]" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This +Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName syn cluster vimFunc contains=vimFunc,vimUserFunc syn cluster vim9Func contains=vim9Func,vim9UserFunc +syn region vim9TypeArgs contained + \ matchgroup=Delimiter + \ start="<\ze " + \ end=">" + \ nextgroup=vimOperParen + \ contains=@vimType + \ oneline + " Beginners - Patterns that involve ^ {{{2 " ========= Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+ \s*\\| \s*#\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_00.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_00.dump new file mode 100644 index 000000000..644b3e5e9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_00.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |v|i|m|9|D|e|f|T|y|p|e|P|a|r|a|m| |T|o|d|o| +0#0000000&@19 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |"+0#e000002&|f|"| +0#0000000&@29 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| +0#0000000&|S+0#e000e06&|e@1|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7|3|1|3|#|i|s@1|u|e|c|o|m@1|e|n|t|-|3|0|4|6@1|9|6|8|2|0| |(|A|l|i +| +0&#a8a8a8255@1|a+0&#ffffff0|k|s|e|i| |B|u|d|a|v|e|i|)| +0#0000000&@58 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |S|e@1| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|6@1|0|4|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|6|5|2|0|2|8|4|5| |.| +0#0000000&@4 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|i+0#af5f00255&|n|t|e|r|f|a|c|e| +0#0000000&|L|i|s|t|a|b|l|e| @47 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|_+0#0000000&|:| |E|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @41 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|v|e|r|s|e|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @42 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|s|t|(+0#e000e06&|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @48 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|F|i|r|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |E| @51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_01.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_01.dump new file mode 100644 index 000000000..40b7f99da --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_01.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|F|i|r|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |E| @51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|i|n|t|e|r|f|a|c|e| +0#0000000&@60 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|u|m| +0#0000000&|E|m|p|t|y|L|i|s|t| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|L|i|s|t|a|b|l|e| @38 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|I|N|S|T|A|N|C|E| @60 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @37 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|L|i|s|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|v+0#0000000&|a|l|u|e|)+0#e000e06&| +0#0000000&@39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|v|e|r|s|e|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|s|t|(+0#e000e06&|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@53 +@57|1|8|,|0|-|1| @8|6|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_02.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_02.dump new file mode 100644 index 000000000..b797ebfd4 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_02.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|F|i|r|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |E| @51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|n+0#e000002&|u|l@1| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@56 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|'+0#e000002&|[|]|'| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65 +@57|3|6|,|5| @9|1|5|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_03.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_03.dump new file mode 100644 index 000000000..48b0229fd --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_03.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|e|n|u|m| +0#0000000&@65 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|L|i|s|t| |i+0#af5f00255&|m|p|l|e|m|e|n|t|s| +0#0000000&|L|i|s|t|a|b|l|e| @42 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|_|v|a|l|u|e|:| |a+0#00e0003&|n|y| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|_|s|i|z|e|:| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>v+0#af5f00255&|a|r| +0#0000000&|_|n|e|x|t|:| |L|i|s|t|a|b|l|e| @49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|)+0#e000e06&| +0#0000000&@48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|v|a|l|u|e| |=+0#af5f00255&| +0#0000000&|v|a|l|u|e| @45 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|i|z|e| |=+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&@50 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|n|e|x|t| |=+0#af5f00255&| +0#0000000&|E|m|p|t|y|L|i|s|t|.+0#af5f00255&|I+0#0000000&|N|S|T|A|N|C|E| @33 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|_+0#00e0e07&|n|e|w|C|o|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|,| |s|i|z|e|:| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&@29 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|v|a|l|u|e| |=+0#af5f00255&| +0#0000000&|v|a|l|u|e| @45 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|i|z|e| |=+0#af5f00255&| +0#0000000&|s|i|z|e| @47 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @37 +@57|5|4|,|5| @9|2|4|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_04.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_04.dump new file mode 100644 index 000000000..7f11c19d8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_04.dump @@ -0,0 +1,20 @@ +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @37 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|c+0#af5f00255&|o|n|s|t| +0#0000000&|l|i|s|t|:| |L|i|s|t| |=+0#af5f00255&| +0#0000000&|L|i|s|t|.|_+0#00e0e07&|n|e|w|C|o|n|s|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|v+0#0000000&|a|l|u|e|,| |(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|i|z|e| |++0#af5f00255&| +0#0000000&|1+0#e000002&|)+0#e000e06&@1| +0#0000000&@4 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|l|i|s|t|.+0#af5f00255&|_+0#0000000&|n|e|x|t| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@47 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|l|i|s|t| @53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|v|e|r|s|e|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|v+0#af5f00255&|a|r| +0#0000000&|r|e|s|u|l|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|L|i|s|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|t+0#00e0e07&|h|i|s|.+0#0000000&|F|i|r|s|t|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|)@1| +0#0000000&@13 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|v+0#af5f00255&|a|r| +0#0000000&|l|i|s|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|R|e|s|t|(+0#e000e06&|)| +0#0000000&@32 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|w+0#af5f00255&|h|i|l|e| +0#0000000&|!+0#af5f00255&|l+0#0000000&|i|s|t|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@45 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|r|e|s|u|l|t| |=+0#af5f00255&| +0#0000000&|r|e|s|u|l|t|.|C|o|n|s|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|l+0#0000000&|i|s|t|.|F|i|r|s|t|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|)@1| +0#0000000&@20 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|l|i|s|t| |=+0#af5f00255&| +0#0000000&|l|i|s|t|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@56 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|r|e|s|u|l|t| @51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|s|t|(+0#e000e06&|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @48 +@57|7|2|,|0|-|1| @7|3@1|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_05.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_05.dump new file mode 100644 index 000000000..369255c05 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_05.dump @@ -0,0 +1,20 @@ +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|R|e|s|t|(+0#e000e06&|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|n|e|x|t| @47 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|F|i|r|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |E| @51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|v|a|l|u|e| @46 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|i|z|e| |=+0#af5f00255&@1| +0#0000000&|0+0#e000002&|)+0#e000e06&| +0#0000000&@40 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|i|z|e| @47 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|i+0#af5f00255&|f| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@49 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|'+0#e000002&|[|]|'| +0#0000000&@49 +@57|9|0|,|2|-|9| @7|4|2|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_06.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_06.dump new file mode 100644 index 000000000..2736cf138 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_06.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|'+0#e000002&|[|]|'| +0#0000000&@49 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|e+0#af5f00255&|n|d|i|f| +0#0000000&@59 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|v+0#af5f00255&|a|r| +0#0000000&|t|e|x|t|:| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|'+0#e000002&|[|'| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#0000000&|F|i|r|s|t|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)@1| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|'+0#e000002&|,| |'| +0#0000000&@5 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|v+0#af5f00255&|a|r| +0#0000000&|l|i|s|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|R|e|s|t|(+0#e000e06&|)| +0#0000000&@32 +||+0#0000e05#a8a8a8255| > +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|w+0#af5f00255&|h|i|l|e| +0#0000000&|!+0#af5f00255&|l+0#0000000&|i|s|t|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@45 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|t|e|x|t| |.+0#af5f00255&@1|=| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|l+0#0000000&|i|s|t|.|F|i|r|s|t|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)@1| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|'+0#e000002&|,| |'| +0#0000000&@18 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|l|i|s|t| |=+0#af5f00255&| +0#0000000&|l|i|s|t|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@56 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|s+0#00e0e07&|t|r|p|a|r|t|(+0#e000e06&|t+0#0000000&|e|x|t|,| |0+0#e000002&|,+0#0000000&| |(+0#e000e06&|s+0#00e0e07&|t|r|l|e|n|(+0#e000e06&|t+0#0000000&|e|x|t|)+0#e000e06&| +0#0000000&|-+0#af5f00255&| +0#0000000&|2+0#e000002&|)+0#e000e06&@1| +0#0000000&|.+0#af5f00255&@1| +0#0000000&|'+0#e000002&|]|'| +0#0000000&@14 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)|:+0#0000000&| |L|i|s|t|a|b|l|e| @36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|E|m|p|t|y|L|i|s|t|.+0#af5f00255&|I+0#0000000&|N|S|T|A|N|C|E| @43 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|1|0|8|,|0|-|1| @6|5|2|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_07.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_07.dump new file mode 100644 index 000000000..881fb0968 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_07.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|M|a|k|e|L|i|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|v+0#0000000&|a|l|u|e|:| |E|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @30 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|L|i|s|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|v+0#0000000&|a|l|u|e|)+0#e000e06&| +0#0000000&@43 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| >e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|M|a|p|<+0#e000e06&|T+0#0000001#ffff4012|,+0#0000000#ffffff0| |U+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|l+0#0000000&|i|s|t|a|b|l|e|:| |L|i|s|t|a|b|l|e|,| |M|a|p@1|e|r|:| |f+0#00e0003&|u|n|c|(|T+0#0000000&|)+0#00e0003&|:+0#0000000&| |U|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a|b|l|e| @2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|r|e|s|u|l|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|E|m|p|t|y|L|i|s|t|.+0#af5f00255&|I+0#0000000&|N|S|T|A|N|C|E| @27 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|l|i|s|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|a|b|l|e| @39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|w+0#af5f00255&|h|i|l|e| +0#0000000&|!+0#af5f00255&|l+0#0000000&|i|s|t|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@49 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r|e|s|u|l|t| |=+0#af5f00255&| +0#0000000&|r|e|s|u|l|t|.|C|o|n|s|<+0#e000e06&|U+0#0000000&|>+0#e000e06&|(|M+0#0000000&|a|p@1|e|r|(+0#e000e06&|l+0#0000000&|i|s|t|.|F|i|r|s|t|<+0#e000e06&|T+0#0000000&|>+0#e000e06&|(|)@2| +0#0000000&@16 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|l|i|s|t| |=+0#af5f00255&| +0#0000000&|l|i|s|t|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@46 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@60 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|r|e|s|u|l|t|.|R|e|v|e|r|s|e|<+0#e000e06&|U+0#0000000&|>+0#e000e06&|(|)| +0#0000000&@42 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|F|i|l|t|e|r|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|l+0#0000000&|i|s|t|a|b|l|e|:| |L|i|s|t|a|b|l|e|,| |P|r|e|d|i|c|a|t|e|:| |f+0#00e0003&|u|n|c|(|T+0#0000000&|)+0#00e0003&|:+0#0000000&| |b+0#00e0003&|o@1|l|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a +|-+0#0000e05#a8a8a8255| |b+0#0000000#ffffff0|l|e| @69 +@57|1|2|6|,|1| @8|6|0|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_08.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_08.dump new file mode 100644 index 000000000..c243859a6 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_08.dump @@ -0,0 +1,20 @@ +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|F|i|l|t|e|r|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|l+0#0000000&|i|s|t|a|b|l|e|:| |L|i|s|t|a|b|l|e|,| |P|r|e|d|i|c|a|t|e|:| |f+0#00e0003&|u|n|c|(|T+0#0000000&|)+0#00e0003&|:+0#0000000&| |b+0#00e0003&|o@1|l|)+0#e000e06&|:+0#0000000&| |L|i|s|t|a +|-+0#0000e05#a8a8a8255| |b+0#0000000#ffffff0|l|e| @69 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|r|e|s|u|l|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|E|m|p|t|y|L|i|s|t|.+0#af5f00255&|I+0#0000000&|N|S|T|A|N|C|E| @27 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|l|i|s|t|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|a|b|l|e| @39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>w+0#af5f00255&|h|i|l|e| +0#0000000&|!+0#af5f00255&|l+0#0000000&|i|s|t|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@49 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|i+0#af5f00255&|f| +0#0000000&|P|r|e|d|i|c|a|t|e|(+0#e000e06&|l+0#0000000&|i|s|t|.|F|i|r|s|t|<+0#e000e06&|T+0#0000000&|>+0#e000e06&|(|)@1| +0#0000000&@35 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|r|e|s|u|l|t| |=+0#af5f00255&| +0#0000000&|r|e|s|u|l|t|.|C|o|n|s|<+0#e000e06&|T+0#0000000&|>+0#e000e06&|(|l+0#0000000&|i|s|t|.|F|i|r|s|t|<+0#e000e06&|T+0#0000000&|>+0#e000e06&|(|)@1| +0#0000000&@20 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|e+0#af5f00255&|n|d|i|f| +0#0000000&@59 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|l|i|s|t| |=+0#af5f00255&| +0#0000000&|l|i|s|t|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@46 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@60 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|r|e|s|u|l|t|.|R|e|v|e|r|s|e|<+0#e000e06&|T+0#0000000&|>+0#e000e06&|(|)| +0#0000000&@42 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0@59| +0#0000000&@12 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)| +0#0000000&@52 +@57|1|4|2|,|5| @8|6|9|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_09.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_09.dump new file mode 100644 index 000000000..4e4185570 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_09.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)| +0#0000000&@52 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|0+0#e000002&|)+0#e000e06&|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|3+0#e000002&|)+0#e000e06&| +0#0000000&@4 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|Y|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|M|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|0+0#e000002&|)+0#e000e06&| +0#0000000&@29 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|3+0#e000002&|)+0#e000e06&| +0#0000000&@20 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|X| |=+0#af5f00255&@1| +0#0000000&|l|i|s|t|Y| @53 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|X| @62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|X|.|R|e|v|e|r|s|e|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@44 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)|.+0#af5f00255&|R+0#0000000&|e|v|e|r|s|e|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)| +0#0000000&@37 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|F|i|l|t|e|r|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|l+0#0000000&|i|s|t|X|,| |(+0#e000e06&|v+0#0000000&|a|l|u|e|:| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|v|a|l|u|e| |%+0#af5f00255&| +0#0000000&|2+0#e000002&| +0#0000000&|!+0#af5f00255&|=| +0#0000000&|0+0#e000002&|)+0#e000e06&| +0#0000000&@11 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|M|a|p|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|>+0#e000e06&|(|l+0#0000000&|i|s|t|X|,| |(+0#e000e06&|v+0#0000000&|a|l|u|e|:| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|n+0#00e0e07&|r|2|c|h|a|r|(+0#e000e06&@1|v+0#0000000&|a|l|u|e| |++0#af5f00255&| +0#0000000&|6+0#e000002&|0|)+0#e000e06&|,+0#0000000&| +| +0#0000e05#a8a8a8255@1|1+0#e000002#ffffff0|)+0#e000e06&@1| +0#0000000&@69 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|4+0#e000002&| +0#0000000&|l|i|s|t|X|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|Y|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@42 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|X| @62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|Y| @62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|3|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@35 +@57|1|6|0|,|5| @8|7|8|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_10.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_10.dump new file mode 100644 index 000000000..ffda6f920 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_10.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|3|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@35 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|3|Y|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|Y|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@35 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|3+0#e000002&| +0#0000000&|l|i|s|t|3|X|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|3|Y|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@40 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|3|X| @61 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|3|Y| @61 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|2|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|3|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|2|Y|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|3|Y|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|l|i|s|t|2|X|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|2|Y|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@40 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|2|X| @61 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|2|Y| @61 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|1|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|2|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|1|Y|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|2|Y|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|l|i|s|t|1|X|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|1|Y|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@40 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|1|X| @61 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|1|Y| @61 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|1|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +@57|1|7@1|,|0|-|1| @6|8|7|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_11.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_11.dump new file mode 100644 index 000000000..5a6e03071 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_11.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|X|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|1|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|Y|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|1|Y|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|0+0#e000002&| +0#0000000&|l|i|s|t|0|X|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|0|Y|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@40 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|X| @61 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|Y| @61 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|X|_|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|0|X|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|Y|_|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|0|Y|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|0+0#e000002&| +0#0000000&|l|i|s|t|0|X|_|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|0|Y|_|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@38 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|X|_| @60 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|Y|_| @60 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|X|_@1|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|0|X|_|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@31 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|0|Y|_@1|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|0|Y|_|.|R|e|s|t|(+0#e000e06&|)| +0#0000000&@31 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|0+0#e000002&| +0#0000000&|l|i|s|t|0|X|_@1|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&|l|i|s|t|0|Y|_@1|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@36 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|X|_@1| @59 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|0|Y|_@1| @59 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|1|9|5|,|0|-|1| @6|9|6|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_12.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_12.dump new file mode 100644 index 000000000..e4e65e3bf --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_12.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|Z|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|M|a|k|e|L|i|s|t|<+0#e000e06&|L+0#0000000&|i|s|t|a|b|l|e|>+0#e000e06&|(|M+0#0000000&|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|-+0#af5f00255&|1+0#e000002&|)+0#e000e06&@1| +0#0000000&@8 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|Z@1|:| |L|i|s|t|a|b|l|e| |=+0#af5f00255&| +0#0000000&|l|i|s|t|Z|.|C|o|n|s|<+0#e000e06&|L+0#0000000&|i|s|t|a|b|l|e|>+0#e000e06&|(|M+0#0000000&|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|0+0#e000002&|)+0#e000e06&@1| +0#0000000&@6 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|L+0#0000000&|i|s|t|a|b|l|e|>+0#e000e06&|(|M+0#0000000&|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|1+0#e000002&|)+0#e000e06&@1| +0#0000000&@32 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|L+0#0000000&|i|s|t|a|b|l|e|>+0#e000e06&|(|M+0#0000000&|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|2+0#e000002&|)+0#e000e06&@1| +0#0000000&@32 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>.+0#af5f00255&|C+0#0000000&|o|n|s|<+0#e000e06&|L+0#0000000&|i|s|t|a|b|l|e|>+0#e000e06&|(|M+0#0000000&|a|k|e|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|3+0#e000002&|)+0#e000e06&@1| +0#0000000&@32 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|Z@1| @61 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|2|1|3|,|5| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_00.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_00.dump new file mode 100644 index 000000000..0098b2251 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_00.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |v|i|m|9|D|e|f|T|y|p|e|P|a|r|a|m| |T|o|d|o| +0#0000000&@19 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |"+0#e000002&|f|"| +0#0000000&@29 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| +0#0000000&|S+0#e000e06&|e@1|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7|3|1|3|#|i|s@1|u|e|c|o|m@1|e|n|t|-|3|0|4|6@1|9|6|8|2|0| |(|A|l|i +| +0&#a8a8a8255@1|a+0&#ffffff0|k|s|e|i| |B|u|d|a|v|e|i|)| +0#0000000&@58 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |S|e@1| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|i|s@1|u|e|s|/|1|4|3@1|0|#|i|s@1|u|e|c|o|m@1|e|n|t|-|2|0|2|8|9|3|8|5|1|5| |.| +0#0000000&@1 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|c+0#af5f00255&|l|a|s@1| +0#0000000&|S|e|t| @56 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|f+0#af5f00255&|i|n|a|l| +0#0000000&|_|e|l|e|m|e|n|t|s|:| |d+0#00e0003&|i|c|t|<|n|u|m|b|e|r|>| +0#0000000&@39 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|_|M|a|p@1|e|r|:| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@28 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|T|o|S|t|r|i|n|g|e|r|:| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|F|r|o|m|S|t|r|i|n|g|e|r|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@31 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|_|M|a|p@1|e|r|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|F+0#0000000&|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |E|)+0#e000e06&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|)|:+0#0000000&| |E| @2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|G+0#0000000&|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |E|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |E| |=+0#af5f00255&|>| +0#0000000&|G|(+0#e000e06&|v+0#0000000&|)+0#e000e06& +||+0#0000e05#a8a8a8255| |)+0#e000e06#ffffff0|(|F+0#0000000&|)+0#e000e06&| +0#0000000&@68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_01.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_01.dump new file mode 100644 index 000000000..370240619 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_01.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|_|M|a|p@1|e|r|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|F+0#0000000&|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |E|)+0#e000e06&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|)|:+0#0000000&| |E| @2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|G+0#0000000&|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |E|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |E| |=+0#af5f00255&|>| +0#0000000&|G|(+0#e000e06&|v+0#0000000&|)+0#e000e06& +||+0#0000e05#a8a8a8255| |)+0#e000e06#ffffff0|(|F+0#0000000&|)+0#e000e06&| +0#0000000&@68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)| +0#0000000&@56 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s| |=+0#af5f00255&| +0#0000000&|{+0#e000e06&|}| +0#0000000&@45 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r| |=+0#af5f00255&| +0#0000000&|_|M|a|p@1|e|r|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(@1|s+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |E| |=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|v|a|l|(+0#e000e06&|s+0#0000000&|)+0#e000e06&@1| +0#0000000&@12 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|T+0#0000000&|o|S|t|r|i|n|g|e|r| |=+0#af5f00255&| +0#0000000&|(+0#e000e06&|a+0#0000000&|:| |E|)+0#e000e06&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|a+0#0000000&|)+0#e000e06&| +0#0000000&@19 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|F+0#0000000&|r|o|m|S|t|r|i|n|g|e|r| |=+0#af5f00255&| +0#0000000&|(+0#e000e06&|s+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |E| |=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|v|a|l|(+0#e000e06&|s+0#0000000&|)+0#e000e06&| +0#0000000&@19 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|e+0#0000000&|l|e|m|e|n|t|s|:| |l+0#00e0003&|i|s|t|<|E+0#0000000&|>+0#00e0003&|,+0#0000000&| |T|o|S|t|r|i|n|g|e|r|:| |f+0#00e0003&|u|n|c|(|E+0#0000000&|)+0#00e0003&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g|,+0#0000000&| @2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@39|F|r|o|m|S|t|r|i|n|g|e|r|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |E|)+0#e000e06&| +0#0000000&@2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s| |=+0#af5f00255&| +0#0000000&|e|l|e|m|e|n|t|s| @39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|r+0#00e0e07&|e|d|u|c|e|(+0#e000e06&@2|F+0#0000000&|:| |f+0#00e0003&|u|n|c|(|E+0#0000000&|)+0#00e0003&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|d+0#0000000&|:| |d+0#00e0003&|i|c|t|<|n|u|m|b|e|r|>|,+0#0000000&| |v|:| |E|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000& +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|e+0#00e0e07&|x|t|e|n|d|(+0#e000e06&|{|[|F+0#0000000&|(+0#e000e06&|v+0#0000000&|)+0#e000e06&|]|:+0#0000000&| |1+0#e000002&|}+0#e000e06&|,+0#0000000&| |d|)+0#e000e06&@1|(|T+0#0000000&|o|S|t|r|i|n|g|e|r|)+0#e000e06&|,+0#0000000&| @20 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|{+0#e000e06&|}|)| +0#0000000&@53 +@57|1|7|,|0|-|1| @8|7|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_02.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_02.dump new file mode 100644 index 000000000..75211124b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_02.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|{+0#e000e06&|}|)| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r| |=+0#af5f00255&| +0#0000000&|_|M|a|p@1|e|r|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|F+0#0000000&|r|o|m|S|t|r|i|n|g|e|r|)+0#e000e06&| +0#0000000&@25 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|T+0#0000000&|o|S|t|r|i|n|g|e|r| |=+0#af5f00255&| +0#0000000&|T|o|S|t|r|i|n|g|e|r| @36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|F+0#0000000&|r|o|m|S|t|r|i|n|g|e|r| |=+0#af5f00255&| +0#0000000&|F|r|o|m|S|t|r|i|n|g|e|r| @32 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|_|F|r|o|m|L|i|s|t|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|e+0#0000000&|l|e|m|e|n|t|s|:| |l+0#00e0003&|i|s|t|<|E+0#0000000&|>+0#00e0003&|)+0#e000e06&|:+0#0000000&| |S|e|t| @28 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|E+0#0000000&|>+0#e000e06&|(|e+0#0000000&|l|e|m|e|n|t|s|,| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|T+0#0000000&|o|S|t|r|i|n|g|e|r|,| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|F+0#0000000&|r|o|m|S|t|r +||+0#0000e05#a8a8a8255| |i+0#0000000#ffffff0|n|g|e|r|)+0#e000e06&| +0#0000000&@66 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|t|a|i|n|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|e+0#0000000&|l|e|m|e|n|t|:| |E|)+0#e000e06&|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@35 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|h+0#00e0e07&|a|s|_|k|e|y|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|,| |t+0#00e0e07&|h|i|s|.+0#0000000&|T|o|S|t|r|i|n|g|e|r|(+0#e000e06&|e+0#0000000&|l|e|m|e|n|t|)+0#e000e06&@1| +0#0000000&@8 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|E|l|e|m|e|n|t|s|<+0#e000e06&|E+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |l+0#00e0003&|i|s|t|<|E+0#0000000&|>+0#00e0003&| +0#0000000&@42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|k+0#00e0e07&|e|y|s|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&|-+0#af5f00255&|>|m+0#00e0e07&|a|p|n|e|w|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r|)+0#e000e06&| +0#0000000&@15 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|3|5|,|0|-|1| @7|1|8|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_03.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_03.dump new file mode 100644 index 000000000..6ded4fe9d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_03.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3>d+0#af5f00255&|e|f| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@51 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@38 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@48 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|k+0#00e0e07&|e|y|s|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&@1| +0#0000000&@29 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |⊇| |{|1|,| |2|}|.| +0#0000000&@47 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|u|p|e|r|s|e|t|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|l+0#00e0e07&|e|n|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&|>+0#af5f00255&|=| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|t+0#0000000&|h|a|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&@1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|t|h|a|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m +||+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|i+0#00e0e07&|n|d|e|x|o|f|(+0#e000e06&@2|s+0#0000000&|e|t|:| |S|e|t|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|!+0#af5f00255&|s+0#0000000&|e|t|.+0#af5f00255&|_+0#0000000&|e|@+0#4040ff13&@2 +| +0#0000000&@56|5|2|,|5| @9|2|8|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_04.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_04.dump new file mode 100644 index 000000000..7c473d897 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_04.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|i+0#00e0e07&|n|d|e|x|o|f|(+0#e000e06&@2|s+0#0000000&|e|t|:| |S|e|t|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|!+0#af5f00255&|s+0#0000000&|e|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m +||+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|-+0#af5f00255&|>|h+0#00e0e07&|a|s|_|k|e|y|(+0#e000e06&|v+0#0000000&|)+0#e000e06&@1|(|t+0#00e0e07&|h|i|s|)+0#e000e06&@1| +0#0000000&|<+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@32 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>#+0#0000e05&| |{|1|,| |2|}| |⊆| |{|1|,| |2|,| |3|}|.| +0#0000000&@47 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|u|b|s|e|t|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@41 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|l+0#00e0e07&|e|n|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&|<+0#af5f00255&|=| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|t+0#0000000&|h|a|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&@1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m +||+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|i+0#00e0e07&|n|d|e|x|o|f|(+0#e000e06&@2|s+0#0000000&|e|t|:| |S|e|t|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|!+0#af5f00255&|s+0#0000000&|e|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m +||+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|-+0#af5f00255&|>|h+0#00e0e07&|a|s|_|k|e|y|(+0#e000e06&|v+0#0000000&|)+0#e000e06&@1|(|t+0#0000000&|h|a|t|)+0#e000e06&@1| +0#0000000&|<+0#af5f00255&| +0#0000000&|0+0#e000002&| +0#0000000&@32 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |∪| |{|2|,| |3|,| |4|}| |=| |{|1|,| |2|,| |3|,| |4|}|.| +0#0000000&@29 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|U|n|i|o|n|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |S|e|t| @43 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|F|r|o|m|L|i|s|t|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|{|}| +0#0000000&@35 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|e+0#00e0e07&|x|t|e|n|d|(+0#e000e06&|t+0#0000000&|h|a|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36 +@57|6|8|,|5| @9|3|9|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_05.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_05.dump new file mode 100644 index 000000000..cd34d7443 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_05.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|e+0#00e0e07&|x|t|e|n|d|(+0#e000e06&|t+0#0000000&|h|a|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|e+0#00e0e07&|x|t|e|n|d|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |∩| |{|2|,| |3|,| |4|}| |=| |{|2|,| |3|}|.| +0#0000000&@35 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|I|n|t|e|r|s|e|c|t|i|o|n|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |S|e|t| @36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|F|r|o|m|L|i|s|t|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s| @23 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|f+0#00e0e07&|i|l|t|e|r|(+0#e000e06&@2|s+0#0000000&|e|t|:| |S|e|t|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s|e|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n +||+0#0000e05#a8a8a8255| |t+0#0000000#ffffff0|s| @70 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|-+0#af5f00255&|>|h+0#00e0e07&|a|s|_|k|e|y|(+0#e000e06&|v+0#0000000&|)+0#e000e06&@1|(|t+0#0000000&|h|a|t|)+0#e000e06&@1| +0#0000000&@36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |\| |{|2|,| |3|,| |4|}| |=| |{|1|}|.| +0#0000000&@38 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|2|,| |3|,| |4|}| |\| |{|1|,| |2|,| |3|}| |=| |{|4|}|.| +0#0000000&@38 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|e|t|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |S|e|t| @35 +@57|8|4|,|0|-|1| @7|4|9|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_06.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_06.dump new file mode 100644 index 000000000..e647ceca4 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_06.dump @@ -0,0 +1,20 @@ +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|e|t|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |S|e|t| @35 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|F|r|o|m|L|i|s|t|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e|n|t|s| @23 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|f+0#00e0e07&|i|l|t|e|r|(+0#e000e06&@2|s+0#0000000&|e|t|:| |S|e|t|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |v|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|!+0#af5f00255&|s+0#0000000&|e|t|.+0#af5f00255&|_+0#0000000&|e|l|e|m|e +||+0#0000e05#a8a8a8255| |n+0#0000000#ffffff0|t|s| @69 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15>-+0#af5f00255&|>|h+0#00e0e07&|a|s|_|k|e|y|(+0#e000e06&|v+0#0000000&|)+0#e000e06&@1|(|t+0#0000000&|h|a|t|)+0#e000e06&@1| +0#0000000&@36 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |△| |{|2|,| |3|,| |4|}| |=| |{|1|,| |4|}|.| +0#0000000&@35 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|y|m@1|e|t|r|i|c|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|t+0#0000000&|h|a|t|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |S|e|t| @29 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|U|n|i|o|n|(+0#e000e06&|t+0#0000000&|h|a|t|)+0#e000e06&|.+0#af5f00255&|S+0#0000000&|e|t|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#0000000&|I|n|t|e|r|s|e|c|t|i|o|n|(+0#e000e06&|t+0#0000000&|h|a|t|)+0#e000e06&@1| +0#0000000&@2 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0@59| +0#0000000&@12 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|T|o|S|t|r|:| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|s+0#0000000&|:| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|s+0#0000000&|)+0#e000e06&| +0#0000000&@12 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|F|r|o|m|S|t|r|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|s+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|2|n|r|(+0#e000e06&|s+0#0000000&|)+0#e000e06&| +0#0000000&@10 +@57|1|0@1|,|3|-|1|7| @5|5|9|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_07.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_07.dump new file mode 100644 index 000000000..8ce2d2bec --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_07.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|F|r|o|m|S|t|r|:| |f+0#00e0003&|u|n|c|(|s|t|r|i|n|g|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|s+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|2|n|r|(+0#e000e06&|s+0#0000000&|)+0#e000e06&| +0#0000000&@10 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|u|b|s|e|t|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@12 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@20 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>.+0#af5f00255&|S+0#0000000&|u|b|s|e|t|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@9 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@20 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|u|p|e|r|s|e|t|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@7 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|u|p|e|r|s|e|t|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@10 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|U+0#0000000&|n|i|o|n|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@10 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|U+0#0000000&|n|i|o|n|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@10 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +@57|1@1|8|,|5| @8|7|0|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_08.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_08.dump new file mode 100644 index 000000000..9e436a374 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_08.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|I+0#0000000&|n|t|e|r|s|e|c|t|i|o|n|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@3 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|I+0#0000000&|n|t|e|r|s|e|c|t|i|o|n|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@3 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|e|t|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@2 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|e|t|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&@1| +0#0000000&@2 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|y|m@1|e|t|r|i|c|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t +| +0#0000e05#a8a8a8255@1|r+0#0000000#ffffff0|)+0#e000e06&@1| +0#0000000&@69 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +@57|1|3|6|,|5| @8|8|1|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_09.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_09.dump new file mode 100644 index 000000000..eadf090b1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_09.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|2+0#e000002&|,+0#0000000&| |3+0#e000002&|,+0#0000000&| |4+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t|r|)+0#e000e06&| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|S+0#0000000&|y|m@1|e|t|r|i|c|D|i|f@1|e|r|e|n|c|e|(+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[|1+0#e000002&|,+0#0000000&| |2+0#e000002&|,+0#0000000&| |3+0#e000002&|]+0#e000e06&|,+0#0000000&| |T|o|S|t|r|,| |F|r|o|m|S|t +| +0#0000e05#a8a8a8255@1|r+0#0000000#ffffff0|)+0#e000e06&@1| +0#0000000&@69 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|.+0#af5f00255&|E+0#0000000&|l|e|m|e|n|t|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1>#+0&#ffffff0@59| +0#0000000&@12 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|n|o|n|e|:| |S|e|t| |=+0#af5f00255&| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)| +0#0000000&@40 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|n|o|n|e|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@57 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|n|o|n|e|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@55 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|n|o|n|e|.|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)| +0#0000000&@54 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|n+0#0000000&|o|n|e|.|E|l|e|m|e|n|t|s|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)@1| +0#0000000&@39 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|s|e|t|s|:| |S|e|t| |=+0#af5f00255&| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|S+0#0000000&|e|t|>+0#e000e06&|(| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|[+0#e000e06&|S+0#0000000&|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)|,+0#0000000&| |S|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)|,+0#0000000&| |S|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)|,+0#0000000&| |S|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)|]|,+0#0000000&| @3 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|(+0#e000e06&|o+0#0000000&|:| |S|e|t|)+0#e000e06&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|o+0#0000000&|)+0#e000e06&|,+0#0000000&| @38 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|(+0#e000e06&|_+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |S|e|t| |=+0#af5f00255&|>| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|<+0#e000e06&|a+0#00e0003&|n|y|>+0#e000e06&|(|)@1| +0#0000000&@33 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s|e|t|s|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@57 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s|e|t|s|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@55 +@57|1|5|2|,|1| @8|9|2|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_10.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_10.dump new file mode 100644 index 000000000..b5c825be2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_10.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s|e|t|s|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@55 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s|e|t|s|.|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)| +0#0000000&@54 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|s+0#0000000&|e|t|s|.|E|l|e|m|e|n|t|s|<+0#e000e06&|S+0#0000000&|e|t|>+0#e000e06&|(|)@1| +0#0000000&@39 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|l|i|s|t|s|:| |S|e|t| |=+0#af5f00255&| +0#0000000&|S|e|t|.|n+0#00e0e07&|e|w|F|r|o|m|L|i|s|t|<+0#e000e06&|l+0#00e0003&|i|s|t|<|a|n|y|>|>+0#e000e06&|(| +0#0000000&@26 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3>[+0#e000e06&@4|]@4|,+0#0000000&| @57 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|(+0#e000e06&|o+0#0000000&|:| |l+0#00e0003&|i|s|t|<|a|n|y|>|)+0#e000e06&|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|o+0#0000000&|)+0#e000e06&|,+0#0000000&| @32 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|(+0#e000e06&|s+0#0000000&|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|a|n|y|>| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|e+0#00e0e07&|v|a|l|(+0#e000e06&|s+0#0000000&|)+0#e000e06&@1| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|s|.|l+0#00e0e07&|e|n|(+0#e000e06&|)| +0#0000000&@56 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|s|.|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|)| +0#0000000&@54 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|l|i|s|t|s|.|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|)| +0#0000000&@53 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|l+0#0000000&|i|s|t|s|.|E|l|e|m|e|n|t|s|<+0#e000e06&|l+0#00e0003&|i|s|t|<|a|n|y|>|>+0#e000e06&|(|)@1| +0#0000000&@32 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|7|0|,|5| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_00.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_00.dump new file mode 100644 index 000000000..54a81b44f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_00.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1>v+0#af5f00255#ffffff0|i|m|9|s|c|r|i|p|t| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|i|m|9| |g|e|n|e|r|i|c| |f|u|n|c|t|i|o|n|s| +0#0000000&@48 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |h|i|g|h|l|i|g|h|t| |l|i|n|k| |v|i|m|9|D|e|f|T|y|p|e|P|a|r|a|m| |T|o|d|o| +0#0000000&@19 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|v|i|m|s|y|n|_|f|o|l|d|i|n|g| |=| |"+0#e000002&|f|"| +0#0000000&@29 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |s|e|t|l| |f|d|c|=|2| |f|d|l|=|9@1| |f|d|m|=|s|y|n|t|a|x| +0#0000000&@27 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |:|h|e|l|p| |g|e|n|e|r|i|c|-|f|u|n|c|t|i|o|n|s| +0#0000000&@47 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|M|y|F|u|n|c|<+0#e000e06&|T+0#0000001#ffff4012|,+0#0000000#ffffff0| |A+0#0000001#ffff4012|,+0#0000000#ffffff0| |B+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|p+0#0000000&|a|r|a|m|1|:| |T|)+0#e000e06&|:+0#0000000&| |T| @39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|f|:| |A| @60 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|x| |=+0#af5f00255&| +0#0000000&|p|a|r|a|m|1| @54 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|x| @60 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|M+0#0000000#ffffff0|y|F|u|n|c|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|,+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|>+0#e000e06&|(|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|l|a|t@1|e|n|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|x+0#0000000&|:| |l+0#00e0003&|i|s|t|<|l|i|s|t|<|T+0#0000000&|>+0#00e0003&@1|)+0#e000e06&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|T+0#0000000&|>+0#00e0003&| +0#0000000&@31 +@57|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_01.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_01.dump new file mode 100644 index 000000000..c45db4e3e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_01.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|M+0#0000000#ffffff0|y|F|u|n|c|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|,+0#0000000&| |l+0#00e0003&|i|s|t|<|n|u|m|b|e|r|>|>+0#e000e06&|(|)| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| >d+0#af5f00255#ffffff0|e|f| +0#0000000&|F|l|a|t@1|e|n|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|x+0#0000000&|:| |l+0#00e0003&|i|s|t|<|l|i|s|t|<|T+0#0000000&|>+0#00e0003&@1|)+0#e000e06&|:+0#0000000&| |l+0#00e0003&|i|s|t|<|T+0#0000000&|>+0#00e0003&| +0#0000000&@31 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|r|e|s|u|l|t|:| |l+0#00e0003&|i|s|t|<|T+0#0000000&|>+0#00e0003&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|]| +0#0000000&@44 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|f+0#af5f00255&|o|r| +0#0000000&|i|n@1|e|r| |i+0#af5f00255&|n| +0#0000000&|x| @54 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r|e|s|u|l|t| |++0#af5f00255&|=| +0#0000000&|i|n@1|e|r| @49 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@62 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|r|e|s|u|l|t| @55 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|F|l|a|t@1|e|n|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|[@1|1+0#e000002&|,+0#0000000&| |2+0#e000002&|]+0#e000e06&|,+0#0000000&| |[+0#e000e06&|3+0#e000002&|]+0#e000e06&@1|)| +0#0000000&@37 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|A| @65 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|F|o@1|<+0#e000e06&|X+0#0000001#ffff4012|,+0#0000000#ffffff0| |Y+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)| +0#0000000&@53 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +@57|1|9|,|1| @9|1|6|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_02.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_02.dump new file mode 100644 index 000000000..187c8f35e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_02.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1|v+0#af5f00255#ffffff0|a|r| +0#0000000&|a| |=+0#af5f00255&| +0#0000000&|A|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@57 +| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|.|F|o@1|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |s+0#00e0003&|t|r|i|n|g|>+0#e000e06&|(|)| +0#0000000&@49 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |d+0#af5f00255#ffffff0|e|f| +0#0000000&|M|a|k|e|E|c|h|o|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|T+0#0000000&|)+0#00e0003&|:+0#0000000&| |T| @43 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|x+0#0000000&|:| |T|)+0#e000e06&|:+0#0000000&| |T| |=+0#af5f00255&|>| +0#0000000&|x| @47 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|v+0#af5f00255#ffffff0|a|r| +0#0000000&|E|c|h|o|N|u|m|b|e|r| |=+0#af5f00255&| +0#0000000&|M|a|k|e|E|c|h|o|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)| +0#0000000&@37 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|E|c|h|o|N|u|m|b|e|r|(+0#e000e06&|1+0#e000002&|2|3|)+0#e000e06&| +0#0000000&@52 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|v+0#af5f00255#ffffff0|a|r| +0#0000000&|E|c|h|o|S|t|r|i|n|g| |=+0#af5f00255&| +0#0000000&|M|a|k|e|E|c|h|o|<+0#e000e06&|s+0#00e0003&|t|r|i|n|g|>+0#e000e06&|(|)| +0#0000000&@37 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|E|c|h|o|S|t|r|i|n|g|(+0#e000e06&|'+0#e000002&|a|b|c|'|)+0#e000e06&| +0#0000000&@50 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| +0#0000000&|F+0#0000001#ffff4012|I|X|M|E|:+0#e000e06#ffffff0| +0#0000e05&|a|d@1| |s|p|e|c|i|f|i|c| |c|o|m@1|a|n|d| |h|a|n|d|l|i|n|g| +0#0000000&@34 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |d|e|f|c|o|m|p|i|l|e| |M|y|F|u|n|c|<|n|u|m|b|e|r|,| |l|i|s|t|<|n|u|m|b|e|r|>|,| |d|i|c|t|<|s|t|r|i|n|g|>@1| +0#0000000&@17 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|3|7|,|0|-|1| @7|3|9|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump new file mode 100644 index 000000000..77bdec7d3 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |d|i|s|a|s@1|e|m|b|l|e| |M|y|F|u|n|c|<|s|t|r|i|n|g|,| |d|i|c|t|<|s|t|r|i|n|g|>@1| +0#0000000&@30 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| |d|i|s|a|s@1|e|m|b|l|e| |M|y|F|u|n|c|<|n|u|m|b|e|r|,| |l|i|s|t|<|b|l|o|b|>@1| +0#0000000&@32 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1>#+0&#ffffff0| |f|u|n|c|r|e|f|s| +0#0000000&@62 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|v+0#af5f00255#ffffff0|a|r| +0#0000000&|F|o@1| |=+0#af5f00255&| +0#0000000&|B|a|r|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@51 +| +0#0000e05#a8a8a8255@1|E+0#0000000#ffffff0|x|e|c|u|t|e|(+0#e000e06&|B+0#0000000&|a|r|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|)| +0#0000000&@52 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|v+0#af5f00255#ffffff0|a|r| +0#0000000&|F|o@1| |=+0#af5f00255&| +0#0000000&|b|a|r|.+0#af5f00255&|B+0#0000000&|a|z|<+0#e000e06&|s+0#00e0003&|t|r|i|n|g|>+0#e000e06&| +0#0000000&@47 +| +0#0000e05#a8a8a8255@1|E+0#0000000#ffffff0|x|e|c|u|t|e|(+0#e000e06&|b+0#0000000&|a|r|.+0#af5f00255&|B+0#0000000&|a|z|<+0#e000e06&|s+0#00e0003&|t|r|i|n|g|>+0#e000e06&|)| +0#0000000&@48 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|F|o@1| @63 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|_|M|e|t|h|o|d|A|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|a+0#0000000&|r|g|:| |T|)+0#e000e06&| +0#0000000&@47 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|c|h|o| +0#0000000&|a|r|g| @60 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|B|(+0#e000e06&|)| +0#0000000&@57 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|F| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|e|t|h|o|d|A|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@39 +@57|5@1|,|1| @9|6|2|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_04.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_04.dump new file mode 100644 index 000000000..e58e3bf35 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_04.dump @@ -0,0 +1,20 @@ +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|F| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|M|e|t|h|o|d|A|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@39 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|F|(+0#e000e06&|"+0#e000002&|t|e|x|t|"|)+0#e000e06&| +0#0000000&@59 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1>c+0#af5f00255#ffffff0|l|a|s@1| +0#0000000&|B|a|r| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|F|o@1| @51 +|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|d+0#af5f00255&|e|f| +0#0000000&|M|e|t|h|o|d|C|(+0#e000e06&|)| +0#0000000&@57 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|F| |=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|u|p|e|r|.+0#af5f00255&|_+0#0000000&|M|e|t|h|o|d|A|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@38 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|F|(+0#e000e06&|"+0#e000002&|t|e|x|t|"|)+0#e000e06&| +0#0000000&@59 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|#+0&#ffffff0| +0#0000000&|I+0#e000e06&|s@1|u|e|:| +0#0000e05&|h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|p|u|l@1|/|1|7@1|2@1|#|i|s@1|u|e|c|o|m@1|e|n|t|-|3|0|7|5@1|3|1|0|5|2| +0#0000000&@2 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|I|d|<+0#e000e06&|U+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|U+0#0000000&|)+0#00e0003&|:+0#0000000&| |U| @42 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|X+0#0000000&|_|:| |U|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|X|_| @48 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +@57|7|3|,|1| @9|8|5|%| diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_05.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_05.dump new file mode 100644 index 000000000..a804b2f19 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_05.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|C|o|n|s|t|<+0#e000e06&|U+0#0000001#ffff4012|,+0#0000000#ffffff0| |V+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|U+0#0000000&|)+0#00e0003&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|V+0#0000000&|)+0#00e0003&|:+0#0000000&| |U| @27 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|X+0#0000000&|_|:| |U|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|_+0#0000000&|:| |V|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|X|_| @38 +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|-+0#0000e05#a8a8a8255| >e+0#af5f00255#ffffff0|x|p|o|r|t| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|F|l|i|p|<+0#e000e06&|U+0#0000001#ffff4012|,+0#0000000#ffffff0| |V+0#0000001#ffff4012|,+0#0000000#ffffff0| |W+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|f|u|n|c|(|U+0#0000000&|)+0#00e0003&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|V+0#0000000&|)+0#00e0003&|:+0#0000000&| |W|)+0#00e0003&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|V+0#0000000&|)+0#00e0003&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|U+0#0000000&|)+0#00e0003&|:+0#0000000&| +|-+0#0000e05#a8a8a8255| |W+0#0000000#ffffff0| @71 +||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&|F+0#0000000&|_|:| |f+0#00e0003&|u|n|c|(|U+0#0000000&|)+0#00e0003&|:+0#0000000&| |f+0#00e0003&|u|n|c|(|V+0#0000000&|)+0#00e0003&|:+0#0000000&| |W|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|Y+0#0000000&|_|:| |V|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|(+0#e000e06&|X+0#0000000&|_|:| |U|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|F|_|(+0#e000e06&|X+0#0000000&|_|)+0#e000e06&|(|Y+0#0000000&|_|)+0#e000e06&| +0#0000000& +||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d@1|e|f| +0#0000000&@66 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|C|o|n|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |a+0#00e0003&|n|y|>+0#e000e06&|(|)|(|2+0#e000002&|)+0#e000e06&|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@38 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@3|=+0#af5f00255&@1| +0#0000000&|F|l|i|p|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |a+0#00e0003&|n|y|,+0#0000000&| |n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|)|(|C+0#0000000&|o|n|s|t|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |a+0#00e0003&|n|y|>+0#e000e06&|(|)@1|(|n+0#e000002&|u|l@1|)+0#e000e06&|(|2+0#e000002&|)+0#e000e06&| +0#0000000&@7 +| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|9|1|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/input/vim9_generic_function_example_list.vim b/runtime/syntax/testdir/input/vim9_generic_function_example_list.vim new file mode 100644 index 000000000..597c02774 --- /dev/null +++ b/runtime/syntax/testdir/input/vim9_generic_function_example_list.vim @@ -0,0 +1,215 @@ +vim9script +# VIM_TEST_SETUP highlight link vim9DefTypeParam Todo +# VIM_TEST_SETUP let g:vimsyn_folding = "f" +# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax +# See: https://github.com/vim/vim/pull/17313#issuecomment-3046696820 (Aliaksei Budavei) + + +# See https://github.com/vim/vim/pull/16604#issuecomment-265202845 . +export interface Listable + def Cons<E>(_: E): Listable + def Reverse<E>(): Listable + def Rest(): Listable + def First<E>(): E + def empty(): bool + def len(): number + def string(): string +endinterface + +enum EmptyList implements Listable + INSTANCE + + def Cons<E>(value: E): Listable + return List.new<E>(value) + enddef + + def Reverse<E>(): Listable + return this + enddef + + def Rest(): Listable + return this + enddef + + def First<E>(): E + return null + enddef + + def empty(): bool + return true + enddef + + def len(): number + return 0 + enddef + + def string(): string + return '[]' + enddef +endenum + +class List implements Listable + const _value: any + const _size: number + var _next: Listable + + def new<E>(value: E) + this._value = value + this._size = 1 + this._next = EmptyList.INSTANCE + enddef + + def _newCons<E>(value: E, size: number) + this._value = value + this._size = size + enddef + + def Cons<E>(value: E): Listable + const list: List = List._newCons<E>(value, (this._size + 1)) + list._next = this + return list + enddef + + def Reverse<E>(): Listable + var result: Listable = List.new<E>(this.First<E>()) + var list: Listable = this.Rest() + + while !list.empty() + result = result.Cons<E>(list.First<E>()) + list = list.Rest() + endwhile + + return result + enddef + + def Rest(): Listable + return this._next + enddef + + def First<E>(): E + return this._value + enddef + + def empty(): bool + return (this._size == 0) + enddef + + def len(): number + return this._size + enddef + + def string(): string + if this.empty() + return '[]' + endif + + var text: string = '[' .. string(this.First<any>()) .. ', ' + var list: Listable = this.Rest() + + while !list.empty() + text ..= string(list.First<any>()) .. ', ' + list = list.Rest() + endwhile + + return strpart(text, 0, (strlen(text) - 2)) .. ']' + enddef +endclass + +export def MakeEmptyList(): Listable + return EmptyList.INSTANCE +enddef + +export def MakeList<E>(value: E): Listable + return List.new<E>(value) +enddef + +export def Map<T, U>(listable: Listable, Mapper: func(T): U): Listable + var result: Listable = EmptyList.INSTANCE + var list: Listable = listable + + while !list.empty() + result = result.Cons<U>(Mapper(list.First<T>())) + list = list.Rest() + endwhile + + return result.Reverse<U>() +enddef + +export def Filter<T>(listable: Listable, Predicate: func(T): bool): Listable + var result: Listable = EmptyList.INSTANCE + var list: Listable = listable + + while !list.empty() + if Predicate(list.First<T>()) + result = result.Cons<T>(list.First<T>()) + endif + + list = list.Rest() + endwhile + + return result.Reverse<T>() +enddef + +############################################################ + +echo MakeEmptyList() + +const listX: Listable = MakeEmptyList() + .Cons<number>(0).Cons<number>(1).Cons<number>(2).Cons<number>(3) +const listY: Listable = MakeList<number>(0) + .Cons<number>(1).Cons<number>(2).Cons<number>(3) +echo listX == listY +echo listX +echo listX.Reverse<number>() +echo MakeEmptyList().Reverse<any>() +echo Filter<number>(listX, (value: number) => value % 2 != 0) +echo Map<number, string>(listX, (value: number) => nr2char((value + 60), 1)) + +echo 4 listX.len() listY.len() +echo listX +echo listY + +const list3X: Listable = listX.Rest() +const list3Y: Listable = listY.Rest() +echo 3 list3X.len() list3Y.len() +echo list3X +echo list3Y + +const list2X: Listable = list3X.Rest() +const list2Y: Listable = list3Y.Rest() +echo 2 list2X.len() list2Y.len() +echo list2X +echo list2Y + +const list1X: Listable = list2X.Rest() +const list1Y: Listable = list2Y.Rest() +echo 1 list1X.len() list1Y.len() +echo list1X +echo list1Y + +const list0X: Listable = list1X.Rest() +const list0Y: Listable = list1Y.Rest() +echo 0 list0X.len() list0Y.len() +echo list0X +echo list0Y + +const list0X_: Listable = list0X.Rest() +const list0Y_: Listable = list0Y.Rest() +echo 0 list0X_.len() list0Y_.len() +echo list0X_ +echo list0Y_ + +const list0X__: Listable = list0X_.Rest() +const list0Y__: Listable = list0Y_.Rest() +echo 0 list0X__.len() list0Y__.len() +echo list0X__ +echo list0Y__ + + +const listZ: Listable = MakeList<Listable>(MakeList<number>(-1)) +const listZZ: Listable = listZ.Cons<Listable>(MakeList<number>(0)) + .Cons<Listable>(MakeList<number>(1)) + .Cons<Listable>(MakeList<number>(2)) + .Cons<Listable>(MakeList<number>(3)) +echo listZZ + diff --git a/runtime/syntax/testdir/input/vim9_generic_function_example_set.vim b/runtime/syntax/testdir/input/vim9_generic_function_example_set.vim new file mode 100644 index 000000000..a4b11fadf --- /dev/null +++ b/runtime/syntax/testdir/input/vim9_generic_function_example_set.vim @@ -0,0 +1,177 @@ +vim9script +# VIM_TEST_SETUP highlight link vim9DefTypeParam Todo +# VIM_TEST_SETUP let g:vimsyn_folding = "f" +# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax +# See: https://github.com/vim/vim/pull/17313#issuecomment-3046696820 (Aliaksei Budavei) + +# See https://github.com/vim/vim/issues/14330#issuecomment-2028938515 . +export class Set + final _elements: dict<number> + const _Mapper: func(number, string): any + const ToStringer: func(any): string + const FromStringer: func(string): any + + static def _Mapper<E>(F: func(string): E): func(number, string): E + return ((G: func(string): E) => (_: number, v: string): E => G(v))(F) + enddef + + def new<E>() + this._elements = {} + this._Mapper = _Mapper<E>((s: string): E => eval(s)) + this.ToStringer = (a: E): string => string(a) + this.FromStringer = (s: string): E => eval(s) + enddef + + def newFromList<E>(elements: list<E>, ToStringer: func(E): string, + FromStringer: func(string): E) + this._elements = elements + ->reduce(((F: func(E): string) => (d: dict<number>, v: E) => + extend({[F(v)]: 1}, d))(ToStringer), + {}) + this._Mapper = _Mapper<E>(FromStringer) + this.ToStringer = ToStringer + this.FromStringer = FromStringer + enddef + + def _FromList<E>(elements: list<E>): Set + return Set.newFromList<E>(elements, this.ToStringer, this.FromStringer) + enddef + + def Contains<E>(element: E): bool + return has_key(this._elements, this.ToStringer(element)) + enddef + + def Elements<E>(): list<E> + return keys(this._elements)->mapnew(this._Mapper) + enddef + + def empty(): bool + return empty(this._elements) + enddef + + def len(): number + return len(this._elements) + enddef + + def string(): string + return string(keys(this._elements)) + enddef + + # {1, 2, 3} ⊇ {1, 2}. + def Superset(that: Set): bool + return (len(this._elements) >= len(that._elements)) && that._elements + ->keys() + ->indexof(((set: Set) => (_: number, v: string) => !set._elements + ->has_key(v))(this)) < 0 + enddef + + # {1, 2} ⊆ {1, 2, 3}. + def Subset(that: Set): bool + return (len(this._elements) <= len(that._elements)) && this._elements + ->keys() + ->indexof(((set: Set) => (_: number, v: string) => !set._elements + ->has_key(v))(that)) < 0 + enddef + + # {1, 2, 3} ∪ {2, 3, 4} = {1, 2, 3, 4}. + def Union(that: Set): Set + return this._FromList<any>({} + ->extend(that._elements) + ->extend(this._elements) + ->keys() + ->map(this._Mapper)) + enddef + + # {1, 2, 3} ∩ {2, 3, 4} = {2, 3}. + def Intersection(that: Set): Set + return this._FromList<any>(this._elements + ->keys() + ->filter(((set: Set) => (_: number, v: string) => set._elements + ->has_key(v))(that)) + ->map(this._Mapper)) + enddef + + # {1, 2, 3} \ {2, 3, 4} = {1}. + # {2, 3, 4} \ {1, 2, 3} = {4}. + def SetDifference(that: Set): Set + return this._FromList<any>(this._elements + ->keys() + ->filter(((set: Set) => (_: number, v: string) => !set._elements + ->has_key(v))(that)) + ->map(this._Mapper)) + enddef + + # {1, 2, 3} △ {2, 3, 4} = {1, 4}. + def SymmetricDifference(that: Set): Set + return this.Union(that).SetDifference(this.Intersection(that)) + enddef +endclass + +############################################################ + +const ToStr: func(number): string = (s: number) => string(s) +const FromStr: func(string): number = (s: string) => str2nr(s) + +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .Subset(Set.newFromList<number>([1, 2], ToStr, FromStr)) +echo Set.newFromList<number>([1, 2], ToStr, FromStr) + .Subset(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) +echo Set.newFromList<number>([1, 2], ToStr, FromStr) + .Superset(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .Superset(Set.newFromList<number>([1, 2], ToStr, FromStr)) + +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .Union(Set.newFromList<number>([2, 3, 4], ToStr, FromStr)) + .Elements<number>() +echo Set.newFromList<number>([2, 3, 4], ToStr, FromStr) + .Union(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) + .Elements<number>() + +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .Intersection(Set.newFromList<number>([2, 3, 4], ToStr, FromStr)) + .Elements<number>() +echo Set.newFromList<number>([2, 3, 4], ToStr, FromStr) + .Intersection(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) + .Elements<number>() + +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .SetDifference(Set.newFromList<number>([2, 3, 4], ToStr, FromStr)) + .Elements<number>() +echo Set.newFromList<number>([2, 3, 4], ToStr, FromStr) + .SetDifference(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) + .Elements<number>() + +echo Set.newFromList<number>([1, 2, 3], ToStr, FromStr) + .SymmetricDifference(Set.newFromList<number>([2, 3, 4], ToStr, FromStr)) + .Elements<number>() +echo Set.newFromList<number>([2, 3, 4], ToStr, FromStr) + .SymmetricDifference(Set.newFromList<number>([1, 2, 3], ToStr, FromStr)) + .Elements<number>() + +############################################################ + +const none: Set = Set.new<any>() +echo none.len() +echo none.empty() +echo none.string() +echo string(none.Elements<any>()) + +const sets: Set = Set.newFromList<Set>( + [Set.new<any>(), Set.new<any>(), Set.new<any>(), Set.new<any>()], + (o: Set): string => string(o), + (_: string): Set => Set.new<any>()) +echo sets.len() +echo sets.empty() +echo sets.string() +echo string(sets.Elements<Set>()) + +const lists: Set = Set.newFromList<list<any>>( + [[[[[]]]]], + (o: list<any>): string => string(o), + (s: string): list<any> => eval(s)) +echo lists.len() +echo lists.empty() +echo lists.string() +echo string(lists.Elements<list<any>>()) + diff --git a/runtime/syntax/testdir/input/vim9_generic_functions.vim b/runtime/syntax/testdir/input/vim9_generic_functions.vim new file mode 100644 index 000000000..010532483 --- /dev/null +++ b/runtime/syntax/testdir/input/vim9_generic_functions.vim @@ -0,0 +1,97 @@ +vim9script +# Vim9 generic functions +# VIM_TEST_SETUP highlight link vim9DefTypeParam Todo +# VIM_TEST_SETUP let g:vimsyn_folding = "f" +# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax + + +# :help generic-functions + +def MyFunc<T, A, B>(param1: T): T + var f: A + var x = param1 + return x +enddef + +MyFunc<number, string, list<number>>() + + +def Flatten<T>(x: list<list<T>>): list<T> + var result: list<T> = [] + for inner in x + result += inner + endfor + return result +enddef + +echo Flatten<number>([[1, 2], [3]]) + + +class A + def Foo<X, Y>() + enddef +endclass +var a = A.new() +a.Foo<number, string>() + + +def MakeEcho<T>(): func(T): T + return (x: T): T => x +enddef + +var EchoNumber = MakeEcho<number>() +echo EchoNumber(123) + +var EchoString = MakeEcho<string>() +echo EchoString('abc') + +# FIXME: add specific command handling +# defcompile MyFunc<number, list<number>, dict<string>> + +# disassemble MyFunc<string, dict<string>> +# disassemble MyFunc<number, list<blob>> + + +# funcrefs + +var Foo = Bar<number> +Execute(Bar<number>) + +var Foo = bar.Baz<string> +Execute(bar.Baz<string>) + +class Foo + def _MethodA<T>(arg: T) + echo arg + enddef + def MethodB() + var F = this._MethodA<number> + F("text") + enddef +endclass + +class Bar extends Foo + def MethodC() + var F = super._MethodA<number> + F("text") + enddef +endclass + + +# Issue: https://github.com/vim/vim/pull/17722#issuecomment-3075531052 + +export def Id<U>(): func(U): U + return (X_: U) => X_ +enddef + +export def Const<U, V>(): func(U): func(V): U + return (X_: U) => (_: V) => X_ +enddef + +export def Flip<U, V, W>(): func(func(U): func(V): W): func(V): func(U): W + return (F_: func(U): func(V): W) => (Y_: V) => (X_: U) => F_(X_)(Y_) +enddef + +echo Const<number, any>()(2)(null) + == Flip<number, any, number>()(Const<number, any>())(null)(2) + diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 4e394d35a..ec7d4784d 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -2,7 +2,7 @@ " Language: Vim script " Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com> " Doug Kearns <dougkea...@gmail.com> -" Last Change: 2025 Jul 21 +" Last Change: 2025 Jul 23 " Former Maintainer: Charles E. Campbell " DO NOT CHANGE DIRECTLY. @@ -321,6 +321,8 @@ syn match vimVimVar "\<v:" nextgroup=vimSubscript,vimVimVarName,vimVarNameError syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscript,vimOptionVarName,vimVarNameError syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar +Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs + Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\==" Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.=" Vim9 syn match vim9LhsVariable "\s\=\%([bwgt]:\)\=\h[a-zA-Z0-9#_]*\ze\s\+=<<" skipwhite nextgroup=vimLetHeredoc contains=vimVarScope @@ -522,7 +524,7 @@ syn match vimFunctionName contained \ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag syn match vimDefName contained \ "\%(<[sS][iI][dD]>\|[bwglstav]:\)\=\%([[:alnum:]_#.]\+\|{.\{-1,}}\)\+" - \ nextgroup=vimDefParams,vimCmdSep,vimComment,vim9Comment + \ nextgroup=vimDefTypeParams,vimDefParams,vimCmdSep,vimComment,vim9Comment \ contains=vimFunctionError,vimFunctionScope,vimFunctionSID,Tag syn match vimFunction "\<fu\%[nction]\>" skipwhite nextgroup=vimFunctionBang,vimFunctionName,vimFunctionPattern,vimCmdSep,vimComment @@ -552,8 +554,15 @@ syn region vimDefParams contained \ end=")" \ skipwhite skipempty nextgroup=vimDefBody,vimDefComment,vimEnddef,vimReturnType,vimCommentError \ contains=vimDefParam,vim9Comment,vimFunctionParamEquals,vimOperParen +syn region vimDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vimDefParams + \ contains=vim9DefTypeParam syn match vimFunctionParam contained "\<\h\w*\>\|\.\.\." skipwhite nextgroup=vimFunctionParamEquals syn match vimDefParam contained "\<\h\w*\>" skipwhite nextgroup=vimParamType,vimFunctionParamEquals +syn match vim9DefTypeParam contained "\<\u\w*\>" syn match vimFunctionParamEquals contained "=" skipwhite nextgroup=@vimExprList syn match vimFunctionMod contained "\<\%(abort\|closure\|dict\|range\)\>" skipwhite skipempty nextgroup=vimFunctionBody,vimFunctionComment,vimEndfunction,vimFunctionMod,vim9CommentError @@ -585,7 +594,7 @@ if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' syn region vimDefFold \ start="\<def!" "\ assume no dict literal in curly-brace name expressions - \ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+(" + \ start="\<def\>\s*\%([[:alnum:]_:<>.#]\+\|{.\{-1,}}\)\+[<(]" \ end="^\s*:\=\s*enddef\>" \ contains=vimDef \ extend fold keepend transparent @@ -627,14 +636,20 @@ if s:vim9script " Methods {{{3 syn match vim9MethodDef contained "\<def\>" skipwhite nextgroup=vim9MethodDefName,vim9ConstructorDefName - syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams contains=@vim9MethodName + syn match vim9MethodDefName contained "\<\h\w*\>" nextgroup=vim9MethodDefParams,vim9MethodDefTypeParams contains=@vim9MethodName syn region vim9MethodDefParams contained \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vim9MethodDefReturnType,vimCommentError \ contains=vimDefParam,vim9Comment,vimFunctionParamEquals + syn region vim9MethodDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9MethodDefParams + \ contains=vim9DefTypeParam syn match vim9ConstructorDefName contained "\<_\=new\w*\>" - \ nextgroup=vim9ConstructorDefParams + \ nextgroup=vim9ConstructorDefParams,vim9ConstuctorDefTypeParams \ contains=@vim9MethodName syn match vim9ConstructorDefParam contained "\<\%(this\.\)\=\h\w*\>" \ skipwhite nextgroup=vimParamType,vimFunctionParamEquals @@ -643,6 +658,12 @@ if s:vim9script \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vim9MethodDefBody,vim9MethodDefComment,vimEnddef,vimCommentError \ contains=vim9ConstructorDefParam,vim9Comment,vimFunctionParamEquals + syn region vim9ConstuctorDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9ConstructorDefParams + \ contains=vim9DefTypeParam syn region vim9MethodDefReturnType contained \ start=":\%(\s\| \)\@=" @@ -676,8 +697,11 @@ if s:vim9script syn cluster vim9MethodName contains=vim9MethodName,vim9MethodNameError if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' - syn region vim9MethodDefFold contained start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent - syn region vim9MethodDefFold contained start="^\s*:\=def\s\+_\=new\i*(" end="^\s*:\=enddef\>" contains=vim9MethodDef fold keepend extend transparent + syn region vim9MethodDefFold contained + \ start="\%(^\s*\%(:\=static\s\+\)\=\)\@16<=:\=def\s\+\h\w*[<(]" + \ end="^\s*:\=enddef\>" + \ contains=vim9MethodDef + \ fold keepend extend transparent endif syn cluster vim9MethodDef contains=vim9MethodDef,vim9MethodDefFold @@ -757,7 +781,7 @@ if s:vim9script syn match vim9InterfaceName contained "\<\u\w*\>" skipwhite skipnl nextgroup=vim9Extends syn keyword vim9AbstractDef contained def skipwhite nextgroup=vim9AbstractDefName - syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams contains=@vim9MethodName + syn match vim9AbstractDefName contained "\<\h\w*\>" skipwhite nextgroup=vim9AbstractDefParams,vim9AbstractDefTypeParams contains=@vim9MethodName syn region vim9AbstractDefParams contained \ matchgroup=Delimiter start="(" end=")" \ skipwhite skipnl nextgroup=vimDefComment,vim9AbstractDefReturnType,vimCommentError @@ -767,6 +791,12 @@ if s:vim9script \ skipwhite skipnl nextgroup=vimDefComment,vimCommentError \ contains=vimTypeSep \ transparent + syn region vim9AbstractDefTypeParams contained + \ matchgroup=Delimiter + \ start="<" + \ end=">" + \ nextgroup=vim9AbstractDefParams + \ contains=vim9DefTypeParam VimFoldi syn region vim9InterfaceBody start="\<interface\>" matchgroup=vimCommand end="\<endinterface\>" contains=@vim9InterfaceBodyList transparent @@ -1493,7 +1523,7 @@ syn match vimBracket contained "[\<>]" syn case match " User Command Highlighting: {{{2 -syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' +syn match vimUsrCmd '^\s*\zs\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' " Vim user commands @@ -2150,18 +2180,26 @@ unlet s:interfaces " Function Call Highlighting: {{{2 " (following Gautam Iyer's suggestion) " ========================== -syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName -syn match vimUserFunc contained "\.\@1<=\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen -syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vim9MethodName,vim9Super,vim9This -syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope -syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation +syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName +syn match vimUserFunc contained "\.\@1<=\l\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs +syn match vimUserFunc contained "\<\%([[:upper:]_]\|\%(\h\w*\.\)\+\h\)\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vim9MethodName,vim9Super,vim9This +syn match vimUserFunc contained "\<\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen contains=vimVarScope +syn match vimUserFunc contained "\%(\<[sgbwtlav]:\|<[sS][iI][dD]>\)\%(\h\w*\.\)*\h\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation -Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This -Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName +Vim9 syn match vim9UserFunc "^\s*\zs\%([sgbwtv]:\|<[sS][iI][dD]>\)\=\%(\h\w*[.#]\)*\h\w*\ze[<(]" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This +Vim9 syn match vim9Func "^\s*\zs\l\w*\ze(" skipwhite nextgroup=vimOperParen contains=vimFuncName syn cluster vimFunc contains=vimFunc,vimUserFunc syn cluster vim9Func contains=vim9Func,vim9UserFunc +syn region vim9TypeArgs contained + \ matchgroup=Delimiter + \ start="<\ze " + \ end=">" + \ nextgroup=vimOperParen + \ contains=@vimType + \ oneline + " Beginners - Patterns that involve ^ {{{2 " ========= Vim9 syn region vim9LineComment start=+^[ :]*\zs#.*$+ skip=+ \s*\\| \s*#\ + end="$" contains=@vimCommentGroup,vimCommentString,vim9CommentTitle extend -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/vim_dev/E1uefAE-006BVp-20%40256bit.org.