runtime(vim): Update base syntax, simplify function call matching
Commit:
https://github.com/vim/vim/commit/78094ff1d7894d4d782b9f8fa2a8817e59e9d374
Author: Doug Kearns <
dougk...@gmail.com>
Date: Fri Jun 12 09:28:05 2026 +0000
runtime(vim): Update base syntax, simplify function call matching
- Explicitly match the dot accessor
- Exclude the qualifier when matching qualified function calls
The dot accessor lookbehind on builtin function calls was slow, matching
across expression based dictionary accessors was visually inconsistent,
and it's arguably more semantically correct.
closes: #20481
Signed-off-by: Doug Kearns <
dougk...@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 48414714f..309ef2a9b 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 <
dougk...@gmail.com>
-" Last Change: 2026 May 24
+" Last Change: 2026 Jun 12
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -236,13 +236,13 @@ Vim9 syn keyword vim9Boolean true false
" Numbers {{{2
" =======
syn case ignore
-syn match vimNumber "\<\d\+\%('\d\+\)*" skipwhite nextgroup=@vimComment,vimSubscript,vimGlobal,vimSubst1
+syn match vimNumber "\<\d\+\%('\d\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets,vimGlobal,vimSubst1
syn match vimNumber "\<\d\+\%('\d\+\)*\.\d\+\%(e[+-]\=\d\+\)\=" skipwhite nextgroup=@vimComment
-syn match vimNumber "\<0b[01]\+\%('[01]\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
-syn match vimNumber "\<0o\=\o\+\%('\o\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
-syn match vimNumber "\<0x\x\+\%('\x\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
+syn match vimNumber "\<0b[01]\+\%('[01]\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
+syn match vimNumber "\<0o\=\o\+\%('\o\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
+syn match vimNumber "\<0x\x\+\%('\x\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
syn match vimNumber '\<0z\>' skipwhite nextgroup=@vimComment
-syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vimComment,vimSubscript
+syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vimComment,vimSubscriptBrackets
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
@@ -255,20 +255,28 @@ syn match vimIsCommand "\<\h\w*\>" nextgroup=vimBang contains=vimCommand
syn match vimBang contained "!"
syn match vimWhitespace contained "\s\+"
-syn region vimSubscript contained matchgroup=vimSubscriptBracket start="\[" end="]" nextgroup=vimSubscript contains=@vimExprList
+syn region vimSubscriptBrackets contained
+ \ matchgroup=vimSubscriptBracket
+ \ start="\["
+ \ end="]"
+ \ nextgroup=vimSubscriptBrackets,vimSubscriptDot
+ \ contains=@vimExprList
+syn match vimSubscriptDot contained "\." nextgroup=vimVar,vimVarKey,vimUserFunc,vimUserFuncKey
-syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vim9Super,vim9This
-syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vimVarScope
-syn match vimVar "\<a:\%(000\|1\=[0-9]\|20\)\>" nextgroup=vimSubscript contains=vimVarScope
-syn match vimFBVar contained "\<[bwglsta]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vimVarScope
+syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vim9Super,vim9This
+" dict-key only
+syn match vimVarKey contained "\<\d\w*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot
+syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
+syn match vimVar "\<a:\%(000\|1\=[0-9]\|20\)\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
+syn match vimFBVar contained "\<[bwglsta]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
" match the scope prefix independently of the retrofitted scope dictionary
syn match vimVarScope contained "\<[bwglstav]:"
-syn match vimVimVar contained "\<[bwglstav]:\%(\h\|\d\)\@!" nextgroup=vimSubscript
+syn match vimVimVar contained "\<[bwglstav]:\%(\h\|\d\)\@!" nextgroup=vimSubscriptBrackets,vimSubscriptDot
-syn match vimVarNameError contained "\<\h\w*\>"
-syn match vimVimVar "\<v:" nextgroup=vimSubscript,vimVimVarName,vimVarNameError
-syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscript,vimOptionVarName,vimVarNameError
+syn match vimVarNameError contained "\<\h\w*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot " just abort highlighting rather than match nextgroup?
+syn match vimVimVar "\<v:" nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVimVarName,vimVarNameError
+syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimOptionVarName,vimVarNameError
syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar
Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs
@@ -276,8 +284,8 @@ Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\==\%(\s\|$\)"
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.=\%(\s\|$\)"
Vim9 syn match vim9LhsVariable "\s\=\%([bwgt]:\)\=\h[a-zA-Z0-9#_]*\ze\s\+=<<\s" skipwhite nextgroup=vimLetHeredoc contains=vimVarScope
-Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\[" nextgroup=vimSubscript
-Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\." nextgroup=vimOper contains=vim9Super,vim9This
+Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\[" nextgroup=vimSubscriptBrackets
+Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\." nextgroup=vimSubscriptDot contains=vim9Super,vim9This
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s*->" contains=vim9Super,vim9This
Vim9 syn match vim9LhsVariableList "\[\_[^]]\+]\ze\s\+[-+/*%]\==" contains=vimVar,@vimSpecialVar
@@ -492,9 +500,9 @@ syn match vimOper "=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
syn match vimOper "\%#=1\%(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\)[?#]\=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
syn match vimOper "\<is\%(not\)\=\>" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
syn match vimOper "\<is\%(not\)\=[?#]" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
-syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup nextgroup=vimSubscript
-syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
-syn region vimOperParen contained matchgroup=vimSep start="\[" end="]" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
+syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot
+syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVar
+syn region vimOperParen contained matchgroup=vimSep start="\[" end="]" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
syn match vimOperError ")"
endif
@@ -1003,8 +1011,8 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\%\
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\[z%]\=(" end="\)" contains=@vimSubstList oneline
syn match vimNotPatSep contained "\\"
syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
-syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend
-syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend
+syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscriptBrackets contains=@vimStringGroup extend
+syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\@]'+lc=1 end=+'+ nextgroup=vimSubscriptBrackets contains=vimQuoteEscape extend
"syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\|\+" end="/" contains=@vimStringGroup " see tst45.vim
syn match vimEscape contained "\."
@@ -1014,17 +1022,17 @@ syn match vimEscape contained "\<" contains=vimNotation
syn match vimEscape contained "\<\*[^>]*>\=>"
syn match vimQuoteEscape contained "''"
-syn region vimString oneline matchgroup=vimString start=+$'+ end=+'+ nextgroup=vimSubscript contains=@vimStringInterpolation,vimQuoteEscape extend
-syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ nextgroup=vimSubscript contains=@vimStringInterpolation,@vimStringGroup extend
+syn region vimString oneline matchgroup=vimString start=+$'+ end=+'+ nextgroup=vimSubscriptBrackets contains=@vimStringInterpolation,vimQuoteEscape extend
+syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ nextgroup=vimSubscriptBrackets contains=@vimStringInterpolation,@vimStringGroup extend
syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
syn match vimStringInterpolationBrace contained "{{"
syn match vimStringInterpolationBrace contained "}}"
syn cluster vimStringInterpolation contains=vimStringInterpolationExpr,vimStringInterpolationBrace
-syn region vimContinueString contained matchgroup=vimContinueString start=+"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringGroup
-syn region vimContinueString contained matchgroup=vimContinueString start=+'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,vimQuoteEscape
-syn region vimContinueString contained matchgroup=vimContinueString start=+$"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringInterpolation,@vimStringGroup
-syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringInterpolation,vimQuoteEscape
+syn region vimContinueString contained matchgroup=vimContinueString start=+"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringGroup
+syn region vimContinueString contained matchgroup=vimContinueString start=+'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,vimQuoteEscape
+syn region vimContinueString contained matchgroup=vimContinueString start=+$"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringInterpolation,@vimStringGroup
+syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringInterpolation,vimQuoteEscape
" Substitutions: {{{2
" =============
@@ -1158,7 +1166,7 @@ syn region vimVarList contained
\ start="\[" end="]"
\ skipwhite nextgroup=vimLetHeredoc
\ contains=@vimContinue,@vimSpecialVar,vimVar
-syn match vimLetVar contained "\<\%([bwglstav]:\)\=\h[a-zA-Z0-9#_]*\>\ze\%(\[.*]\)\=\s*=<<" skipwhite nextgroup=vimLetVarSubscript,vimLetHeredoc contains=vimVarScope,vimSubscript
+syn match vimLetVar contained "\<\%([bwglstav]:\)\=\h[a-zA-Z0-9#_]*\>\ze\%(\[.*]\)\=\s*=<<" skipwhite nextgroup=vimLetVarSubscript,vimLetHeredoc contains=vimVarScope,vimSubscriptBrackets
hi link vimLetVar vimVar
syn region vimLetVarSubscript contained
\ matchgroup=vimSubscriptBracket
@@ -2331,14 +2339,16 @@ 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,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
+syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName
+" dict-key only
+syn match vimUserFuncKey contained "\%(\l\|\d\)\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vim9MethodName
+syn match vimUserFunc contained "\<[[:upper:]_]\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*\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,vim9TypeArgs 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*\ze[(<]" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This
+Vim9 syn match vim9UserFunc "^\s*\zs\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze[(<]" skipwhite nextgroup=vimOperParen contains=vimVarScope
+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
@@ -2758,7 +2768,9 @@ if !exists("skip_vim_syntax_inits")
hi def link vimUserCmdError Error
hi def link vimUserCmdKey vimCommand
hi def link vimUserFunc Normal
+ hi def link vimUserFuncKey vimUserFunc
hi def link vimVar Normal
+ hi def link vimVarKey vimVar
hi def link vimVarScope Identifier
hi def link vimVimgrep vimCommand
hi def link vimVimgrepadd vimCommand
diff --git a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_00.dump b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_00.dump
index 39857166d..9d2ccedf0 100644
--- a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_00.dump
@@ -9,8 +9,8 @@
@8|p+0#af5f00255&|u|b|l|i|c| +0#0000000&|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@47
@75
@8|d+0#af5f00255&|e|f| +0#0000000&|n+0#e000e06&|e|w|(|a+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|,+0#0000000&| |b+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@43
-@8| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#00e0e07&| +0#0000000&@48
-@8| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|b+0#00e0e07&| +0#0000000&@48
+@8| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#00e0e07&| +0#0000000&@48
+@8| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|b+0#00e0e07&| +0#0000000&@48
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
@8|d+0#af5f00255&|e|f| +0#0000000&|e+0#e000e06&|m|p|t|y|(|)|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&@49
diff --git a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_01.dump b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_01.dump
index ff3e81032..6c39c5071 100644
--- a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_01.dump
@@ -7,7 +7,7 @@
@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|2+0#e000002&| +0#0000000&@50
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#e000e06&|t|r|i|n|g|(|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
-@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|f|(+0#e000e06&|'+0#e000002&|(|%|s|,| |%|s|)|'|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|a+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|b+0#00e0e07&|)+0#e000e06&| +0#0000000&@17
+@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|f|(+0#e000e06&|'+0#e000002&|(|%|s|,| |%|s|)|'|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|a+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|b+0#00e0e07&|)+0#e000e06&| +0#0000000&@17
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_02.dump b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_02.dump
index 22c31e20f..195b6fa05 100644
--- a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_02.dump
@@ -6,15 +6,15 @@
@16>r+0#af5f00255&|e|t|u|r|n| +0#0000000&|0+0#e000002&| +0#0000000&@50
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@8|d+0#af5f00255&|e|f| +0#0000000&|s+0#e000e06&|t|r|i|n|g|(|)|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@46
-@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&@42
+@16|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&@42
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|1|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|1|:+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&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#af5f00255&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@24
-|e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|e+0#e000e06&|m|p|t|y|(|)| +0#0000000&@32
-|e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|l+0#e000e06&|e|n|(|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&@24
-|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M|a|r|k|e|r|E|n|u|m|T|e|s|t|.|I|N|S|T|A|N|C|E|.|s+0#e000e06&|t|r|i|n|g|(|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&@3
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|1|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|1|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@27
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|1|:+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&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|)+0#e000e06&| +0#0000000&@24
+|e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|.+0#0000000&|e+0#e000e06&|m|p|t|y|(|)| +0#0000000&@32
+|e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|.+0#0000000&|l+0#e000e06&|e|n|(|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|0+0#e000002&| +0#0000000&@24
+|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|1| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|M+0#00e0e07&|a|r|k|e|r|E|n|u|m|T|e|s|t|.+0#0000000&|I+0#00e0e07&|N|S|T|A|N|C|E|.+0#0000000&|s+0#e000e06&|t|r|i|n|g|(|)| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|I|N|S|T|A|N|C|E|'| +0#0000000&@3
@75
@57|3|7|,|3|-|1|7| @6|7|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_03.dump b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_03.dump
index ed7c835e0..e08396976 100644
--- a/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_builtin_object_methods2_03.dump
@@ -1,8 +1,8 @@
| +0&#ffffff0@74
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P|a|i|r|C|l|a|s@1|T|e|s|t|.|n+0#e000e06&|e|w|(|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|2|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|p+0#0000000&|a|i|r|.|e+0#e000e06&|m|p|t|y|(|)| +0#0000000&@44
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|l+0#e000e06&|e|n|(|)| +0#0000000&@45
-|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|2|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|p|a|i|r|.|s+0#e000e06&|t|r|i|n|g|(|)| +0#0000000&@42
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|p+0#00e0e07&|a|i|r|:+0#0000000&| |P|a|i|r|C|l|a|s@1|T|e|s|t| |=+0#af5f00255&| +0#0000000&|P+0#00e0e07&|a|i|r|C|l|a|s@1|T|e|s|t|.+0#0000000&|n+0#e000e06&|e|w|(|0+0#e000002&|,+0#0000000&| |1+0#e000002&|)+0#e000e06&| +0#0000000&@23
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|b+0#00e0e07&|2|:+0#0000000&| |b+0#00e0003&|o@1|l| +0#0000000&|=+0#af5f00255&| +0#0000000&|!+0#af5f00255&|p+0#00e0e07&|a|i|r|.+0#0000000&|e+0#e000e06&|m|p|t|y|(|)| +0#0000000&@44
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|n+0#00e0e07&|2|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|p+0#00e0e07&|a|i|r|.+0#0000000&|l+0#e000e06&|e|n|(|)| +0#0000000&@45
+|c+0#af5f00255&|o|n|s|t| +0#0000000&|s+0#00e0e07&|2|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|p+0#00e0e07&|a|i|r|.+0#0000000&|s+0#e000e06&|t|r|i|n|g|(|)| +0#0000000&@42
>e+0#af5f00255&|c|h|o| +0#0000000&|b+0#00e0e07&|2| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|!+0#af5f00255&|e+0#00e0e07&|m|p|t|y|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&@51
|e+0#af5f00255&|c|h|o| +0#0000000&|n+0#00e0e07&|2| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|2+0#e000002&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|l+0#00e0e07&|e|n|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|2+0#e000002&| +0#0000000&@44
|e+0#af5f00255&|c|h|o| +0#0000000&|s+0#00e0e07&|2| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|(|0|,| |1|)|'| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|s+0#00e0e07&|t|r|i|n|g|(+0#e000e06&|p+0#00e0e07&|a|i|r|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|'+0#e000002&|(|0|,| |1|)|'| +0#0000000&@27
diff --git a/runtime/syntax/testdir/dumps/vim9_constructors_00.dump b/runtime/syntax/testdir/dumps/vim9_constructors_00.dump
index 6aa0cba8d..4e8c70236 100644
--- a/runtime/syntax/testdir/dumps/vim9_constructors_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_constructors_00.dump
@@ -6,7 +6,7 @@
@2|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|v+0#af5f00255&|a|r| +0#0000000&|_|i|n|s|t|a|n|c|e|:| |A| @49
@2|v+0#af5f00255&|a|r| +0#0000000&|s|t|r|:| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@57
@2|d+0#af5f00255&|e|f| +0#0000000&|_+0#00e0e07&|n|e|w|(+0#e000e06&|s+0#0000000&|t|r|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&| +0#0000000&@51
-@4|t+0#00e0e07&|h|i|s|.+0#af5f00255&|s+0#0000000&|t|r| |=+0#af5f00255&| +0#0000000&|s|t|r| @56
+@4|t+0#00e0e07&|h|i|s|.+0#0000000&|s|t|r| |=+0#af5f00255&| +0#0000000&|s|t|r| @56
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@2|s+0#af5f00255&|t|a|t|i|c| +0#0000000&|d+0#af5f00255&|e|f| +0#0000000&|G|e|t|I|n|s|t|a|n|c|e|(+0#e000e06&|s+0#0000000&|t|r|:| |s+0#00e0003&|t|r|i|n|g|)+0#e000e06&|:+0#0000000&| |A| @34
@4|i+0#af5f00255&|f| +0#0000000&|_|i|n|s|t|a|n|c|e| |=+0#af5f00255&@1| +0#0000000&|n+0#e000002&|u|l@1| +0#0000000&@50
diff --git a/runtime/syntax/testdir/dumps/vim9_ex_enum2_01.dump b/runtime/syntax/testdir/dumps/vim9_ex_enum2_01.dump
index 2b47e5723..0d1dc4f15 100644
--- a/runtime/syntax/testdir/dumps/vim9_ex_enum2_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_ex_enum2_01.dump
@@ -10,11 +10,11 @@
@4|c+0#af5f00255&|o|n|s|t| +0#0000000&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |s+0#00e0003&|t|r|i|n|g| +0#0000000&@51
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
-|f+0#af5f00255&|o|r| +0#0000000&|l+0#00e0e07&|e|t@1|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#af5f00255&|v+0#00e0e07&|a|l|u|e|s| +0#0000000&@47
+|f+0#af5f00255&|o|r| +0#0000000&|l+0#00e0e07&|e|t@1|e|r| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#0000000&|v+0#00e0e07&|a|l|u|e|s| +0#0000000&@47
@4|e+0#af5f00255&|c|h|o| +0#0000000&|l+0#00e0e07&|e|t@1|e|r| +0#0000000&@59
|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#af5f00255&|D+0#00e0e07&| +0#0000000&@61
+|e+0#af5f00255&|c|h|o| +0#0000000&|L+0#00e0e07&|e|t@1|e|r|.+0#0000000&|D+0#00e0e07&| +0#0000000&@61
@75
|~+0#4040ff13&| @73
| +0#0000000&@56|1|9|,|0|-|1| @7|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_12.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_12.dump
index 522ffddce..8e7afb180 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_12.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_12.dump
@@ -12,9 +12,9 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
@75
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
-|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
+|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
@57|2|1|7|,|1| @8|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_13.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_13.dump
index f36c96729..33e9c6dcc 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_13.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_13.dump
@@ -1,20 +1,20 @@
-|v+0#af5f00255#ffffff0|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
-|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255#ffffff0|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|b+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
->c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
-|b+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|b+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+>c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|b+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|w+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
-|w+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|w+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|w+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
-|t+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|t+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@75
-|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
-|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@57|2|3|5|,|1| @8|7|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_14.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_14.dump
index 8511d6fe3..605a805cb 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_14.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_14.dump
@@ -1,4 +1,4 @@
-|v+0#00e0e07#ffffff0|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
+|v+0#00e0e07#ffffff0|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@58
@75
@75
|v+0#af5f00255&|a|r| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|#|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_15.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_15.dump
index dfdacdd95..1b40e3d21 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_15.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_15.dump
@@ -2,11 +2,11 @@
@75
|c+0#af5f00255&|a|l@1| +0#0000000&|<+0#e000e06&|S|I|D|>|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@52
@75
-|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
->c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+>c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
@75
|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@46
|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_16.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_16.dump
index 31a186f25..454c5c39a 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_16.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_16.dump
@@ -1,11 +1,11 @@
| +0&#ffffff0@74
|<+0#e000e06&|S|I|D|>|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@57
@75
-|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
-|b+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
->w+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
-|t+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
-|v+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+|g+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+|b+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+>w+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+|t+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+|v+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
@75
|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@51
|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
@@ -13,8 +13,8 @@
@75
|#+0#0000e05&| |C|h|a|i|n|e|d| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50
@75
-|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|)|.+0#af5f00255&|b+0#0000001#ffff4012|a|r|(+0#e000e06#ffffff0|)| +0#0000000&@56
-|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|)|.+0#af5f00255&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
+|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|b+0#0000001#ffff4012|a|r|(+0#e000e06#ffffff0|)| +0#0000000&@56
+|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@49
@75
@75
@57|2|8|9|,|1| @8|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_function_calls_17.dump b/runtime/syntax/testdir/dumps/vim9_function_calls_17.dump
index 82f79ef53..b1fb20e62 100644
--- a/runtime/syntax/testdir/dumps/vim9_function_calls_17.dump
+++ b/runtime/syntax/testdir/dumps/vim9_function_calls_17.dump
@@ -11,8 +11,8 @@
@75
|#+0#0000e05&| |I|s@1|u|e| |#|1|7@1|6@1| |(|v|a|l|i|d| |f|u|n|c|t|i|o|n| |c|a|l@1| |h|i|g|h|l|i|g|h|t|e|d| |a|s| |e|r@1|o|r|)| +0#0000000&@17
@75
-|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.+0#af5f00255&|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&@59
-|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.+0#af5f00255&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@52
+|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&@59
+|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@52
@75
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_00.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_00.dump
index 165cc4c79..ecf423b33 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_00.dump
@@ -15,6 +15,6 @@
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|_|s|n|d|:| |a+0#00e0003&|n|y| +0#0000000&@53
||+0#0000e05#a8a8a8255| | +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&|T+0#0000001#ffff4012|,+0#0000000#ffffff0| |U+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|f+0#0000000&|s|t|:| |T|,| |s|n|d|:| |U|)+0#e000e06&| +0#0000000&@39
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|f|s|t| |=+0#af5f00255&| +0#0000000&|f|s|t| @49
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|n|d| |=+0#af5f00255&| +0#0000000&|s|n|d| @49
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|f|s|t| |=+0#af5f00255&| +0#0000000&|f|s|t| @49
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|s|n|d| |=+0#af5f00255&| +0#0000000&|s|n|d| @49
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_01.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_01.dump
index e7f119701..d01283a88 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_01.dump
@@ -2,19 +2,19 @@
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|c+0#af5f00255&|o|n|s|t| +0#0000000&|_|s|n|d|:| |a+0#00e0003&|n|y| +0#0000000&@53
||+0#0000e05#a8a8a8255| | +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&|T+0#0000001#ffff4012|,+0#0000000#ffffff0| |U+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|f+0#0000000&|s|t|:| |T|,| |s|n|d|:| |U|)+0#e000e06&| +0#0000000&@39
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|f|s|t| |=+0#af5f00255&| +0#0000000&|f|s|t| @49
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7>t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|n|d| |=+0#af5f00255&| +0#0000000&|s|n|d| @49
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|f|s|t| |=+0#af5f00255&| +0#0000000&|f|s|t| @49
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7>t+0#00e0e07&|h|i|s|.+0#0000000&|_|s|n|d| |=+0#af5f00255&| +0#0000000&|s|n|d| @49
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |T| @51
-|2+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&|f|s|t| @48
+|2+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|s|t| @48
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
|-+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|S|e|c|o|n|d|<+0#e000e06&|T+0#0000001#ffff4012|>+0#e000e06#ffffff0|(|)|:+0#0000000&| |T| @50
-|2+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|n|d| @48
+|2+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&|_|s|n|d| @48
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|f|(+0#e000e06&|"+0#e000002&|(|%|s|,| |%|s|)|"|,+0#0000000&| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|f|s|t|,| |t+0#00e0e07&|h|i|s|.+0#af5f00255&|_+0#0000000&|s|n|d|)+0#e000e06&| +0#0000000&@17
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|p+0#00e0e07&|r|i|n|t|f|(+0#e000e06&|"+0#e000002&|(|%|s|,| |%|s|)|"|,+0#0000000&| |t+0#00e0e07&|h|i|s|.+0#0000000&|_|f|s|t|,| |t+0#00e0e07&|h|i|s|.+0#0000000&|_|s|n|d|)+0#e000e06&| +0#0000000&@17
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
@57|1|8|,|9| @9|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_02.dump b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_02.dump
index 4dde18a4f..163092f67 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_enum_02.dump
@@ -1,8 +1,8 @@
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| |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|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|C|o|m@1|o|n|P|a|i|r|.+0#af5f00255&|H+0#0000000&|e|l@1|o|W|o|r|l|d| @46
-| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|C|o|m@1|o|n|P|a|i|r|.+0#af5f00255&|B+0#0000000&|o@1|l|e|a|n|s| @48
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|C|o|m@1|o|n|P|a|i|r|.|H|e|l@1|o|W|o|r|l|d| @46
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|C|o|m@1|o|n|P|a|i|r|.|B|o@1|l|e|a|n|s| @48
| +0#0000e05#a8a8a8255@1> +0#0000000#ffffff0@72
|~+0#4040ff13&| @73
|~| @73
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
index 2fc1beb43..c285bf78c 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_03.dump
@@ -6,14 +6,14 @@
||+0#0000e05#a8a8a8255| | +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| | +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
-|2+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
-|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|v|a|l|u|e| |=+0#af5f00255&| +0#0000000&|v|a|l|u|e| @45
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|s|i|z|e| |=+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&@50
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|n|e|x|t| |=+0#af5f00255&| +0#0000000&|E|m|p|t|y|L|i|s|t|.|I|N|S|T|A|N|C|E| @33
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|v|a|l|u|e| |=+0#af5f00255&| +0#0000000&|v|a|l|u|e| @45
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|s|i|z|e| |=+0#af5f00255&| +0#0000000&|s|i|z|e| @47
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
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
index b8b324cef..7a8cb8299 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_04.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_04.dump
@@ -1,6 +1,6 @@
|-+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
-|2+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
-|2+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
+|2+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#0000000&|_|s|i|z|e| |++0#af5f00255&| +0#0000000&|1+0#e000002&|)+0#e000e06&@1| +0#0000000&@4
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|l|i|s|t|.|_|n|e|x|t| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@47
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|l|i|s|t| @53
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| > +0#0000000#ffffff0@72
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
index 226929253..858ba4f79 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_05.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_05.dump
@@ -1,17 +1,17 @@
|-+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
-|2+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
+|2+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&|_|n|e|x|t| @47
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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&|_|v|a|l|u|e| @46
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|_|s|i|z|e| |=+0#af5f00255&@1| +0#0000000&|0+0#e000002&|)+0#e000e06&| +0#0000000&@40
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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&|_|s|i|z|e| @47
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
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
index 508abd90d..632e06aa4 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_06.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_06.dump
@@ -14,7 +14,7 @@
||+0#0000e05#a8a8a8255| |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| | +0#0000000#ffffff0@3|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|E|m|p|t|y|L|i|s|t|.|I|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
index 881fb0968..2fe9aa810 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_07.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_07.dump
@@ -4,7 +4,7 @@
||+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&|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|.|I|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
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
index c243859a6..974cb7c4c 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_08.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_08.dump
@@ -1,6 +1,6 @@
|-+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&|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|.|I|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
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
index 4e4185570..f7980b15e 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_09.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_list_09.dump
@@ -1,13 +1,13 @@
| +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| +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#0000000&|C|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|1+0#e000002&|)+0#e000e06&|.+0#0000000&|C|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|2+0#e000002&|)+0#e000e06&|.+0#0000000&|C|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| +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#0000000&|C|o|n|s|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&|(|2+0#e000002&|)+0#e000e06&|.+0#0000000&|C|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&|M|a|k|e|E|m|p|t|y|L|i|s|t|(+0#e000e06&|)|.+0#0000000&|R|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
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
index d68c0a2ad..b9790765d 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_01.dump
@@ -5,15 +5,15 @@
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| > +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
-|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&|{+0#e000e06&|}| +0#0000000&@45
-|2+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
-|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|e|l|e|m|e|n|t|s| |=+0#af5f00255&| +0#0000000&|{+0#e000e06&|}| +0#0000000&@45
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|T|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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|F|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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
|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
-|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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|_|e|l|e|m|e|n|t|s| |=+0#af5f00255&| +0#0000000&|e|l|e|m|e|n|t|s| @39
|2+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&
|2+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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|{+0#e000e06&|}|)| +0#0000000&@53
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
index c9388ef44..8a2ca5406 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_02.dump
@@ -1,20 +1,20 @@
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@15|{+0#e000e06&|}|)| +0#0000000&@53
-|2+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
-|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|T|o|S|t|r|i|n|g|e|r| |=+0#af5f00255&| +0#0000000&|T|o|S|t|r|i|n|g|e|r| @36
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@7|t+0#00e0e07&|h|i|s|.+0#0000000&|F|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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| > +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
-|2+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
+|2+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#0000000&|T|o|S|t|r|i|n|g|e|r|,| |t+0#00e0e07&|h|i|s|.+0#0000000&|F|r|o|m|S|t|r
|2+0#0000e05#a8a8a8255| |i+0#0000000#ffffff0|n|g|e|r|)+0#e000e06&| +0#0000000&@66
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#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#0000000&|_|M|a|p@1|e|r|)+0#e000e06&| +0#0000000&@15
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
index 84f58af60..d17b1b304 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_03.dump
@@ -1,20 +1,20 @@
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|_|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|_|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@38
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|_|e|l|e|m|e|n|t|s|)+0#e000e06&@1| +0#0000000&@29
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#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|.|_|e|l|e|m|e|n|t|s|)+0#e000e06&@1| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|t|h|a|t|.|_|e|l|e|m
|2+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52
-|2+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
+|2+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|.|_|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
index f0ef27db5..5a7d673b1 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_04.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_04.dump
@@ -1,14 +1,14 @@
-|2+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
+|2+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|.|_|e|l|e|m
|2+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68
|2+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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#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|.|_|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#0000000&|_|e|l|e|m
|2+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52
-|2+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
+|2+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|.|_|e|l|e|m
|2+0#0000e05#a8a8a8255| |e+0#0000000#ffffff0|n|t|s| @68
|2+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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
@@ -16,5 +16,5 @@
||+0#0000e05#a8a8a8255| | +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
|2+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
-|2+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
+|2+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|.|_|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
index 32901e8ee..bf0b76c84 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_05.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_05.dump
@@ -1,17 +1,17 @@
-|2+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
-|2+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
+|2+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|.|_|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36
+|2+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#0000000&|_|e|l|e|m|e|n|t|s|)+0#e000e06&| +0#0000000&@36
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| > +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|_|e|l|e|m|e|n|t|s| @23
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52
-|2+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
+|2+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|.|_|e|l|e|m|e|n
|2+0#0000e05#a8a8a8255| |t+0#0000000#ffffff0|s| @70
|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|#+0#0000e05&| |{|1|,| |2|,| |3|}| |\| |{|2|,| |3|,| |4|}| |=| |{|1|}|.| +0#0000000&@38
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
index c613084a9..6024e2dd1 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_06.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_function_example_set_06.dump
@@ -1,15 +1,15 @@
|-+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
-|2+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
+|2+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#0000000&|_|e|l|e|m|e|n|t|s| @23
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|k+0#00e0e07&|e|y|s|(+0#e000e06&|)| +0#0000000&@52
-|2+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
+|2+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|.|_|e|l|e|m|e
|2+0#0000e05#a8a8a8255| |n+0#0000000#ffffff0|t|s| @69
|2+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
-|2+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
+|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@11|-+0#af5f00255&|>|m+0#00e0e07&|a|p|(+0#e000e06&|t+0#00e0e07&|h|i|s|.+0#0000000&|_|M|a|p@1|e|r|)+0#e000e06&@1| +0#0000000&@40
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| | +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
-|2+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
+|2+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#0000000&|S|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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@62
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
diff --git a/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump b/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump
index e38ebf06b..caeacdee1 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_03.dump
@@ -8,13 +8,13 @@
| +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|v+0#af5f00255#ffffff0|a|r| +0#0000000&|F|o@1| |=+0#af5f00255&| +0#0000000&|b|a|r|.|B|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|.|B|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| |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
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|e+0#af5f00255&|c|h|o| +0#0000000&|a|r|g| @60
|2+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
-|2+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
+|2+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#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
index 791efc23c..adb4dc450 100644
--- a/runtime/syntax/testdir/dumps/vim9_generic_functions_04.dump
+++ b/runtime/syntax/testdir/dumps/vim9_generic_functions_04.dump
@@ -1,11 +1,11 @@
-|2+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
+|2+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#0000000&|_|M|e|t|h|o|d|A|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@39
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|F|(+0#e000e06&|"+0#e000002&|t|e|x|t|"|)+0#e000e06&| +0#0000000&@59
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
||+0#0000e05#a8a8a8255| |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| >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
-|2+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
+|2+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#0000000&|_|M|e|t|h|o|d|A|<+0#e000e06&|n+0#00e0003&|u|m|b|e|r|>+0#e000e06&| +0#0000000&@38
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@3|F|(+0#e000e06&|"+0#e000002&|t|e|x|t|"|)+0#e000e06&| +0#0000000&@59
|2+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|c|l|a|s@1| +0#0000000&@64
diff --git a/runtime/syntax/testdir/dumps/vim9_lambdas_08.dump b/runtime/syntax/testdir/dumps/vim9_lambdas_08.dump
index 10fad7f49..0194343af 100644
--- a/runtime/syntax/testdir/dumps/vim9_lambdas_08.dump
+++ b/runtime/syntax/testdir/dumps/vim9_lambdas_08.dump
@@ -12,7 +12,7 @@
@75
|d+0#af5f00255&|e|f| +0#0000000&|O|p|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|f|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |D|i|g|i|t|)+0#00e0003&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@1
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#0000001#ffff4012|F+0#00e0e07#ffffff0|:+0#0000000&| |f+0#00e0003&|u|n|c|(|n|u|m|b|e|r|,+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#0000001#ffff4012| +0#0000000#ffffff0|=+0#0000001#ffff4012|>| +0#0000000#ffffff0@27
-@8|(+0#0000001#ffff4012|x+0#00e0e07#ffffff0|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |y+0#00e0e07&|:+0#0000000&| |D|i|g|i|t|)+0#0000001#ffff4012|:+0#0000000#ffffff0| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#0000001#ffff4012|>| +0#0000000#ffffff0|F|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|.+0#af5f00255&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@20
+@8|(+0#0000001#ffff4012|x+0#00e0e07#ffffff0|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|,+0#0000000&| |y+0#00e0e07&|:+0#0000000&| |D|i|g|i|t|)+0#0000001#ffff4012|:+0#0000000#ffffff0| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#0000001#ffff4012|>| +0#0000000#ffffff0|F|(+0#e000e06&|x+0#00e0e07&|,+0#0000000&| |y+0#00e0e07&|.+0#0000000&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@20
|e+0#af5f00255&|n|d@1|e|f| +0#0000000&|#+0#0000e05&@22| |^| |v|i|m|C|o|m@1|a|n|d|?| +0#0000000&@30
@75
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump b/runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump
index f01edc18f..456cd3b73 100644
--- a/runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_legacy_header_00.dump
@@ -5,7 +5,7 @@
@75
|i+0#af5f00255&|f| +0#0000000&|!+0#af5f00255&|h+0#00e0e07&|a|s|(+0#e000e06&|'+0#e000002&|v|i|m|9|s|c|r|i|p|t|'|)+0#e000e06&| +0#0000000&@53
@2|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@58
-@2|s+0#af5f00255&|o|u|r|c|e| +0#00e0e07&|f|o@1|.+0#af5f00255&|v+0#00e0e07&|i|m| +0#0000000&@58
+@2|s+0#af5f00255&|o|u|r|c|e| +0#00e0e07&|f|o@1|.+0#0000000&|v+0#00e0e07&|i|m| +0#0000000&@58
@2|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@66
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_legacy_header_fold_00.dump b/runtime/syntax/testdir/dumps/vim9_legacy_header_fold_00.dump
index 89b32ceae..3852e3665 100644
--- a/runtime/syntax/testdir/dumps/vim9_legacy_header_fold_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_legacy_header_fold_00.dump
@@ -7,7 +7,7 @@
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
||+0#0000e05#a8a8a8255| |i+0#af5f00255#ffffff0|f| +0#0000000&|!+0#af5f00255&|h+0#00e0e07&|a|s|(+0#e000e06&|'+0#e000002&|v|i|m|9|s|c|r|i|p|t|'|)+0#e000e06&| +0#0000000&@51
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|#| |4+0#e000002&|2| +0#0000000&|"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@56
-||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|s+0#af5f00255&|o|u|r|c|e| +0#0000000&|f|o@1|.+0#af5f00255&|v+0#0000000&|i|m| @56
+||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|s+0#af5f00255&|o|u|r|c|e| +0#0000000&|f|o@1|.|v|i|m| @56
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@1|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@64
||+0#0000e05#a8a8a8255| |e+0#af5f00255#ffffff0|n|d|i|f| +0#0000000&@67
||+0#0000e05#a8a8a8255| | +0#0000000#ffffff0@72
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_00.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_00.dump
index 8a7d4edd9..525ab4b92 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_00.dump
@@ -9,11 +9,11 @@
@2|v+0#af5f00255&|a|r| +0#0000000&|_+0#00e0e07&|v|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@57
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@53
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#0000000&|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@49
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@49
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@47
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@56
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_01.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_01.dump
index aaa99d746..325cbec16 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_01.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
@2|d+0#af5f00255&|e|f| +0#0000000&|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&@47
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|a|l|u|e| +0#0000000&@51
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2>d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |a+0#00e0003&|n|y| +0#0000000&@56
-@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@52
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@52
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
|c+0#af5f00255&|l|a|s@1| +0#0000000&|B| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r|)+0#e000e06&| +0#0000000&@50
-@3| +0#00e0e07&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#0000000&|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@48
+@3| +0#00e0e07&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|_|B|a|s|e|I|n|i|t|(+0#e000e06&|v+0#00e0e07&|a|l|u|e|)+0#e000e06&| +0#0000000&@48
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|V|a|l|u|e|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@53
@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s| +0#0000000#ffffff0@61
-@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@51
+@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e| +0#0000000&@51
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@57|1|9|,|3| @9|2|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
index 17439c33d..1d39b6b5b 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords2_03.dump
@@ -8,8 +8,8 @@
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A|.|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|V+0#0000000&|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
-|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B|.|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|V+0#0000000&|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A+0#00e0e07&|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#0000000&|V|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
+|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B+0#00e0e07&|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#0000000&|V|a|l|u|e|(+0#e000e06&|)| +0#0000000&@48
|d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&|C| @62
@75
|~+0#4040ff13&| @73
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_00.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_00.dump
index aada2bbb4..3c7d2289e 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_00.dump
@@ -12,7 +12,7 @@
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
@75
@4|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
-@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_01.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_01.dump
index f1c2d2230..e057e9fe4 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords3_01.dump
@@ -1,16 +1,16 @@
| +0&#ffffff0@3|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
-@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@34
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
>c+0#af5f00255&|l|a|s@1| +0#0000000&|B| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|A| @57
@4|d+0#af5f00255&|e|f| +0#0000000&|K|(+0#e000e06&|)|:+0#0000000&| |f+0#00e0003&|u|n|c|(|a|n|y|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@44
-@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@33
+@8|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|(+0#e000e06&@1|_+0#00e0e07&|:+0#0000000&| |a+0#00e0003&|n|y|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|_+0#00e0e07&|v|a|l|u|e|)+0#e000e06&| +0#0000000&@33
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A|.|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#af5f00255&|K+0#0000000&|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
-|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B|.|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#af5f00255&|K+0#0000000&|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
+|e+0#af5f00255&|c|h|o| +0#0000000&|1+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|A+0#00e0e07&|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|1+0#e000002&|)+0#e000e06&|.+0#0000000&|K|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
+|e+0#af5f00255&|c|h|o| +0#0000000&|2+0#e000002&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|B+0#00e0e07&|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|2+0#e000002&|)+0#e000e06&|.+0#0000000&|K|(+0#e000e06&|)|(|n+0#e000002&|u|l@1|)+0#e000e06&| +0#0000000&@46
@75
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_00.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_00.dump
index ea8eaecb4..b687306a8 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_00.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_00.dump
@@ -10,11 +10,11 @@
@75
|c+0#af5f00255&|l|a|s@1| +0#0000000&|F|o@1| @65
@2|v+0#af5f00255&|a|r| +0#0000000&|x+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|4+0#e000002&|2| +0#0000000&@54
-@2|v+0#af5f00255&|a|r| +0#0000000&|y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|4+0#e000002&|1| +0#0000000&@45
-@2|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&@41
+@2|v+0#af5f00255&|a|r| +0#0000000&|y+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|4+0#e000002&|1| +0#0000000&@45
+@2|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&@41
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@63
-@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&@45
+@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&| +0#0000000&@45
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_01.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_01.dump
index 177727246..42b21778d 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_01.dump
@@ -1,20 +1,20 @@
-| +0&#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&@41
+| +0&#ffffff0@1|v+0#af5f00255&|a|r| +0#0000000&|z+0#00e0e07&|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&@41
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@63
-@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&@45
+@4|e+0#af5f00255&|c|h|o| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&| +0#0000000&@45
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
> @74
@2|d+0#af5f00255&|e|f| +0#0000000&|n+0#00e0e07&|e|w|X|Y|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@39
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|)+0#e000e06&| +0#0000000&@50
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@58
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&|++0#af5f00255&|=| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@57
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@58
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&| +0#0000000&|++0#af5f00255&|=| +0#0000000&|a+0#00e0e07&|r|g| +0#0000000&@57
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
-@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|2|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&@1| +0#0000000&@30
-@4|E|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|,+0#0000000#ffffff0| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
-@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|-+0#af5f00255#ffffff0|>|E+0#0000000&|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
+@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|2|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&|++0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&|)+0#e000e06&@1| +0#0000000&@30
+@4|E|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|,+0#0000000#ffffff0| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
+@3| +0#00e0e07&|t+0#0000001#ffff4012|h|i|s|-+0#af5f00255#ffffff0|>|E+0#0000000&|c|h|o|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|z+0#00e0e07&|)+0#e000e06&| +0#0000000&@36
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@57|1|9|,|0|-|1| @7|1|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_02.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_02.dump
index feed1359e..e5bc88967 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_02.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_02.dump
@@ -10,11 +10,11 @@
@75
|c+0#af5f00255&|l|a|s@1| +0#0000000&|B|a|r| |e+0#af5f00255&|x|t|e|n|d|s| +0#0000000&|F|o@1| @53
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|1|(+0#e000e06&|)| +0#0000000&@62
-@3| +0#00e0e07&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|D+0#0000000&|e|f|1|(+0#e000e06&|)| +0#0000000&@58
+@3| +0#00e0e07&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|D|e|f|1|(+0#e000e06&|)| +0#0000000&@58
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|2|(+0#e000e06&|)| +0#0000000&@62
-@4|v+0#af5f00255&|a|r| +0#0000000&|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|z+0#00e0e07&| +0#0000000&@35
-@4|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|z+0#00e0e07&|]+0#e000e06&| +0#0000000&@35
-@4|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#e000002&|r|u|e|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|z+0#00e0e07&|}+0#e000e06&| +0#0000000&@16
+@4|v+0#af5f00255&|a|r| +0#0000000&|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|z+0#00e0e07&| +0#0000000&@35
+@4|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|y+0#00e0e07&|,+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|z+0#00e0e07&|]+0#e000e06&| +0#0000000&@35
+@4|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#e000002&|r|u|e|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|z+0#00e0e07&|}+0#e000e06&| +0#0000000&@16
@57|3|7|,|3| @9|4|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_03.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_03.dump
index 934eaa5e0..f501920b1 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_03.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_03.dump
@@ -1,17 +1,17 @@
-| +0&#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#e000002&|r|u|e|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|z+0#00e0e07&|}+0#e000e06&| +0#0000000&@16
+| +0&#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|y+0#00e0e07&|,+0#0000000&| |t+0#e000002&|r|u|e|:+0#0000000&| |s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|z+0#00e0e07&|}+0#e000e06&| +0#0000000&@16
@4|v+0#af5f00255&|a|r| +0#0000000&|d+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |c+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |c+0#00e0e07&|}+0#e000e06&| +0#0000000&@43
-@4|e+0#af5f00255&|c|h|o| +0#0000000&|c+0#00e0e07&|.+0#af5f00255&|s+0#00e0e07&|u|p|e|r| +0#0000000&@58
-@4|e+0#af5f00255&|c|h|o| +0#0000000&|c+0#00e0e07&|.+0#af5f00255&|t+0#00e0e07&|h|i|s| +0#0000000&@59
-@4|e+0#af5f00255&|c|h|o| +0#0000000&|d+0#00e0e07&|.+0#af5f00255&|s+0#00e0e07&|u|p|e|r|.+0#af5f00255&|t+0#00e0e07&|h|i|s| +0#0000000&@53
-@4>e+0#af5f00255&|c|h|o| +0#0000000&|d+0#00e0e07&|.+0#af5f00255&|t+0#00e0e07&|h|i|s|.+0#af5f00255&|s+0#00e0e07&|u|p|e|r| +0#0000000&@53
+@4|e+0#af5f00255&|c|h|o| +0#0000000&|c+0#00e0e07&|.+0#0000000&|s+0#00e0e07&|u|p|e|r| +0#0000000&@58
+@4|e+0#af5f00255&|c|h|o| +0#0000000&|c+0#00e0e07&|.+0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@59
+@4|e+0#af5f00255&|c|h|o| +0#0000000&|d+0#00e0e07&|.+0#0000000&|s+0#00e0e07&|u|p|e|r|.+0#0000000&|t+0#00e0e07&|h|i|s| +0#0000000&@53
+@4>e+0#af5f00255&|c|h|o| +0#0000000&|d+0#00e0e07&|.+0#0000000&|t+0#00e0e07&|h|i|s|.+0#0000000&|s+0#00e0e07&|u|p|e|r| +0#0000000&@53
@4|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&| +0#0000000&|b+0#00e0e07&| +0#0000000&|c+0#00e0e07&| +0#0000000&@60
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|5|(+0#e000e06&|)| +0#0000000&@62
-@4|v+0#af5f00255&|a|r| +0#0000000&|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&| +0#0000000&@47
-@4|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|)+0#e000e06&| +0#0000000&@45
-@4|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|]+0#e000e06&| +0#0000000&@46
-@4|v+0#af5f00255&|a|r| +0#0000000&|d+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|y+0#00e0e07&|}+0#e000e06&| +0#0000000&@33
+@4|v+0#af5f00255&|a|r| +0#0000000&|a+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&| +0#0000000&@47
+@4|v+0#af5f00255&|a|r| +0#0000000&|b+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&|*+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&|)+0#e000e06&| +0#0000000&@45
+@4|v+0#af5f00255&|a|r| +0#0000000&|c+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|[+0#e000e06&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&|]+0#e000e06&| +0#0000000&@46
+@4|v+0#af5f00255&|a|r| +0#0000000&|d+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|s+0#00e0e07&|u|p|e|r|:+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&|,+0#0000000&| |t+0#00e0e07&|h|i|s|:+0#0000000&| |t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|y+0#00e0e07&|}+0#e000e06&| +0#0000000&@33
@4|e+0#af5f00255&|c|h|o| +0#0000000&|a+0#00e0e07&| +0#0000000&|b+0#00e0e07&| +0#0000000&|c+0#00e0e07&| +0#0000000&|d+0#00e0e07&| +0#0000000&@58
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
diff --git a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_04.dump b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_04.dump
index 4e9ce2c15..551c9f6c2 100644
--- a/runtime/syntax/testdir/dumps/vim9_super_this_keywords_04.dump
+++ b/runtime/syntax/testdir/dumps/vim9_super_this_keywords_04.dump
@@ -1,7 +1,7 @@
| +0&#ffffff0@3|v+0#af5f00255&|a|r| +0#0000000&|x+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|t+0#0000001#ffff4012|h|i|s|#+0#00e0e07#ffffff0|s|u|p|e|r|#|x| +0#0000000&@50
@4|v+0#af5f00255&|a|r| +0#0000000&|y+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|u|p|e|r|#|t+0#0000001#ffff4012|h|i|s|#+0#00e0e07#ffffff0|y| +0#0000000&@50
-@4|t+0#0000001#ffff4012|h|i|s|#+0#0000000#ffffff0|s|u|p|e|r|#|F|u|n|c|(+0#e000e06&|)| +0#0000000&@53
-@4|s|u|p|e|r|#|t+0#0000001#ffff4012|h|i|s|#+0#0000000#ffffff0|F|u|n|c|(+0#e000e06&|)| +0#0000000&@53
+@4|t|h|i|s|#|s|u|p|e|r|#|F|u|n|c|(+0#e000e06&|)| +0#0000000&@53
+@4|s|u|p|e|r|#|t|h|i|s|#|F|u|n|c|(+0#e000e06&|)| +0#0000000&@53
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
> @74
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|7|(+0#e000e06&|a+0#00e0e07&|r|g| +0#0000000&|=+0#af5f00255&| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|D|e|f|3|(+0#e000e06&|)@1| +0#0000000&@44
@@ -9,8 +9,8 @@
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
@75
@2|d+0#af5f00255&|e|f| +0#0000000&|D|e|f|8|(+0#e000e06&|)|:+0#0000000&| |n+0#00e0003&|u|m|b|e|r| +0#0000000&@54
-@4|v+0#af5f00255&|a|r| +0#0000000&|F+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&@50
-@4|v+0#af5f00255&|a|r| +0#0000000&|G+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#af5f00255#ffffff0|x+0#00e0e07&| +0#0000000&@49
+@4|v+0#af5f00255&|a|r| +0#0000000&|F+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&@50
+@4|v+0#af5f00255&|a|r| +0#0000000&|G+0#00e0e07&| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|)| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|s+0#0000001#ffff4012|u|p|e|r|.+0#0000000#ffffff0|x+0#00e0e07&| +0#0000000&@49
@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|F|(+0#e000e06&|)| +0#0000000&|++0#af5f00255&| +0#0000000&|G|(+0#e000e06&|)| +0#0000000&@54
@2|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@66
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
diff --git a/runtime/syntax/testdir/dumps/vim9_types_example_object_01.dump b/runtime/syntax/testdir/dumps/vim9_types_example_object_01.dump
index 21d48d7c5..b8f1e6068 100644
--- a/runtime/syntax/testdir/dumps/vim9_types_example_object_01.dump
+++ b/runtime/syntax/testdir/dumps/vim9_types_example_object_01.dump
@@ -10,7 +10,7 @@
|e+0#af5f00255&|n|d|e|n|u|m| +0#0000000&@67
@75
|v+0#af5f00255&|a|r| +0#0000000&|c|:| |o+0#00e0003&|b|j|e|c|t|<|C+0#0000000&|>+0#00e0003&| +0#0000000&|=+0#af5f00255&| +0#0000000&|C|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@48
-|v+0#af5f00255&|a|r| +0#0000000&|e|:| |o+0#00e0003&|b|j|e|c|t|<|E+0#0000000&|>+0#00e0003&| +0#0000000&|=+0#af5f00255&| +0#0000000&|E|.+0#af5f00255&|I+0#0000000&|N|S|T|A|N|C|E| @45
+|v+0#af5f00255&|a|r| +0#0000000&|e|:| |o+0#00e0003&|b|j|e|c|t|<|E+0#0000000&|>+0#00e0003&| +0#0000000&|=+0#af5f00255&| +0#0000000&|E|.|I|N|S|T|A|N|C|E| @45
|v+0#af5f00255&|a|r| +0#0000000&|o|s|:| |t+0#00e0003&|u|p|l|e|<|o|b|j|e|c|t|<|a|n|y|>|,+0#0000000&| |o+0#00e0003&|b|j|e|c|t|<|I+0#0000000&|>+0#00e0003&@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|(+0#e000e06&|c+0#0000000&|,| |e|)+0#e000e06&| +0#0000000&@28
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|c+0#0000000&|,| |e|)+0#e000e06&| +0#0000000&|=+0#af5f00255&@1| +0#0000000&|o|s| @57
@75
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
index 9fe6696f4..96d4c9800 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_00.dump
@@ -15,6 +15,6 @@
@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|G|i|v|e|N|a|m|e|(+0#e000e06&|)| +0#0000000&@45
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
+| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
@4|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
@57|1|,|1| @10|T|o|p|
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
index 0fc35aaf4..473be656e 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_01.dump
@@ -2,11 +2,11 @@
@12|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|G|i|v|e|N|a|m|e|(+0#e000e06&|)| +0#0000000&@45
@8|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@60
@75
-| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#af5f00255#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
+| +0#00e0e07&@7|t+0#0000001#ffff4012|h|i|s|.+0#0000000#ffffff0|n+0#00e0e07&|a|m|e| +0#0000000&|=+0#af5f00255&| +0#0000000&|N|a|m|e|(+0#e000e06&|)| +0#0000000&@48
@4>e+0#af5f00255&|n|d@1|e|f| +0#0000000&@64
|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@66
@75
-|e+0#af5f00255&|c|h|o| +0#0000000&|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@59
+|e+0#af5f00255&|c|h|o| +0#0000000&|T+0#00e0e07&|e|s|t|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@59
@75
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump b/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
index 26c48152e..e12e03e31 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_def_nested_fold_00.dump
@@ -11,7 +11,7 @@
|++0#0000e05#a8a8a8255| |+|-@1| |1@1| |l|i|n|e|s|:| |d|e|f| |n|e|w|(|)|-@49
| @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|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|T|e|s|t|.|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@57
+| +0#0000e05#a8a8a8255@1|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|T+0#00e0e07&|e|s|t|.+0#0000000&|n+0#00e0e07&|e|w|(+0#e000e06&|)| +0#0000000&@57
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@72
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump b/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump
index 239a31dfa..82c698c6c 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_echo_03.dump
@@ -2,7 +2,7 @@
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|'+0#e000002&|e|n|d|'|:+0#0000000&| |1+0#e000002&|2|3|}+0#e000e06&| +0#0000000&@52
@75
|i+0#af5f00255&|f| +0#0000000&|1+0#e000002&|2|3| +0#0000000&@68
-@8|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|e+0#00e0e07&|n|d|)+0#e000e06&| +0#0000000&@52
+@8|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#0000000&|e+0#00e0e07&|n|d|)+0#e000e06&| +0#0000000&@52
>e+0#af5f00255&|l|s|e| +0#0000000&@70
@8|e+0#af5f00255&|c|h|o| +0#0000000&|'+0#e000002&|b|a|r|'| +0#0000000&@56
|e+0#af5f00255&|n|d|i|f| +0#0000000&@69
diff --git a/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump b/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump
index 7f52581b9..07726510e 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_execute_03.dump
@@ -11,7 +11,7 @@
|"+0#0000e05&| |I|s@1|u|e| |#|9@1|8|7| |(|p|a|r|e|n|t|h|e|s|i|s|e|d| |a|r|g|u|m|e|n|t| |-| |n|o|t| |a| |f|u|n|c|t|i|o|n| |c|a|l@1|)| +0#0000000&@14
@75
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|{+0#e000e06&|'+0#e000002&|a|r|g|'|:+0#0000000&| |"+0#e000002&|c|a|l@1| |F|o@1|(|)|"|}+0#e000e06&| +0#0000000&@43
-|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#af5f00255&|a+0#00e0e07&|r|g|)+0#e000e06&| +0#0000000&@57
+|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&|(+0#e000e06&|f+0#00e0e07&|o@1|.+0#0000000&|a+0#00e0e07&|r|g|)+0#e000e06&| +0#0000000&@57
@75
|~+0#4040ff13&| @73
|~| @73
diff --git a/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump b/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
index 9c99fb70a..9a1bd9f14 100644
--- a/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_ex_menu_04.dump
@@ -13,8 +13,8 @@
|"+0#0000e05&| |a| |m|e|n|u| |i|t|e|m| |n|a|m|e| |c|a|n@1|o|t| |s|t|a|r|t| |w|i|t|h| |'|.|'| +0#0000000&@34
@75
|d+0#af5f00255&|e|f| +0#0000000&|H|i|s|t|o|r|y|J|u|m|p|M|e|n|u|(+0#e000e06&|)| +0#0000000&@53
-@3| +0#00e0e07&|p|o|p|u|p|.+0#af5f00255&|F+0#0000000&|i|l|t|e|r|M|e|n|u|(+0#e000e06&|"+0#e000002&|J|u|m|p| |h|i|s|t|o|r|y|"|,+0#0000000&| |d+0#00e0e07&|i|r|_|h|i|s|t|,+0#0000000&| @28
+@3| +0#00e0e07&|p|o|p|u|p|.+0#0000000&|F|i|l|t|e|r|M|e|n|u|(+0#e000e06&|"+0#e000002&|J|u|m|p| |h|i|s|t|o|r|y|"|,+0#0000000&| |d+0#00e0e07&|i|r|_|h|i|s|t|,+0#0000000&| @28
@8|(+0#e000e06&|r+0#00e0e07&|e|s|,+0#0000000&| |_+0#00e0e07&|)+0#e000e06&| +0#0000000&|=+0#af5f00255&|>| +0#0000000&|{+0#e000e06&| +0#0000000&@53
-@12|H|i|s|t|o|r|y|J|u|m|p|(+0#e000e06&|r+0#00e0e07&|e|s|.+0#af5f00255&|t+0#00e0e07&|e|x|t|)+0#e000e06&| +0#0000000&@41
+@12|H|i|s|t|o|r|y|J|u|m|p|(+0#e000e06&|r+0#00e0e07&|e|s|.+0#0000000&|t+0#00e0e07&|e|x|t|)+0#e000e06&| +0#0000000&@41
@8|}+0#e000e06&|)| +0#0000000&@64
@57|7|1|,|1| @9|9|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_01.dump b/runtime/syntax/testdir/dumps/vim_function_calls_01.dump
index 05ba8237b..d3f3c42b8 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_01.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_01.dump
@@ -17,4 +17,4 @@
|"+0#0000e05&| |c|o|m@1|a|n|d| +0#0000000&@65
|c+0#af5f00255&|a|l@1|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@66
|c+0#af5f00255&|a|l@1| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@65
-@57|1|9|,|1| @10|5|%|
+@57|1|9|,|1| @10|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_02.dump b/runtime/syntax/testdir/dumps/vim_function_calls_02.dump
index 9de7ceebb..7244cd5fc 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_02.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_02.dump
@@ -17,4 +17,4 @@
|"+0#0000e05&| |c|o|m@1|a|n|d| +0#0000000&@65
|c+0#af5f00255&|o|p|y|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@66
|c+0#af5f00255&|o|p|y| +0#0000000&|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@65
-@57|3|7|,|1| @9|1|2|%|
+@57|3|7|,|1| @9|1@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_04.dump b/runtime/syntax/testdir/dumps/vim_function_calls_04.dump
index 0b24a8ebd..4a1edd0f4 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_04.dump
@@ -17,4 +17,4 @@
|"+0#0000e05&| |c|o|m@1|a|n|d| +0#0000000&@65
|i+0#af5f00255&|n|s|e|r|t| +0#0000000&@68
|.+0#af5f00255&| +0#0000000&@73
-@57|7|3|,|1| @9|2|5|%|
+@57|7|3|,|1| @9|2|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_05.dump b/runtime/syntax/testdir/dumps/vim_function_calls_05.dump
index ae5ffb84d..7c764ed74 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_05.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_05.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|m|a|t|c|h| |=+0#af5f00255&| +0#0000000&|m+0#00e0e07&|a|t|c|h|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#00e0e07&|a|t|c|h|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
-@57|9|1|,|1| @9|3|2|%|
+@57|9|1|,|1| @9|3|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_06.dump b/runtime/syntax/testdir/dumps/vim_function_calls_06.dump
index 40b132299..0142cb07d 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_06.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|s|u|b|s|t|i|t|u|t|e| |=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@43
|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|u|b|s|t|i|t|u|t|e|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
-@57|1|0|9|,|1| @8|3|9|%|
+@57|1|0|9|,|1| @8|3|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_07.dump b/runtime/syntax/testdir/dumps/vim_function_calls_07.dump
index 8e4c2494b..edc2aa09e 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_07.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_07.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|u|n|i|q| |=+0#af5f00255&| +0#0000000&|u+0#00e0e07&|n|i|q|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|u+0#00e0e07&|n|i|q|(+0#e000e06&|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@61
-@57|1|2|7|,|1| @8|4|6|%|
+@57|1|2|7|,|1| @8|4@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_08.dump b/runtime/syntax/testdir/dumps/vim_function_calls_08.dump
index 882b3258d..204322789 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_08.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_08.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|e|c|h|o| |=+0#af5f00255&| +0#0000000&|e+0#ffffff16#ff404010|c|h|o|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|e+0#ffffff16#ff404010|c|h|o|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@61
-@57|1|4|5|,|0|-|1| @6|5|3|%|
+@57|1|4|5|,|0|-|1| @6|5|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_09.dump b/runtime/syntax/testdir/dumps/vim_function_calls_09.dump
index 207e4efcc..9c94d8447 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_09.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_09.dump
@@ -17,4 +17,4 @@
|e+0#af5f00255&|c|h|o| +0#0000000&|(+0#e000e06&|F+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)@1| +0#0000000&@62
|e+0#af5f00255&|c|h|o| +0#0000000&|F+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&|++0#af5f00255&| +0#0000000&|b|a|r| @58
|e+0#af5f00255&|c|h|o| +0#0000000&|b|a|r| |++0#af5f00255&| +0#0000000&|F+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&@58
-@57|1|6|3|,|0|-|1| @6|6|0|%|
+@57|1|6|3|,|0|-|1| @6|5|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_10.dump b/runtime/syntax/testdir/dumps/vim_function_calls_10.dump
index c38576536..04eec79be 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_10.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_10.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|:|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
-@57|1|8|1|,|1| @8|6|7|%|
+@57|1|8|1|,|1| @8|6|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_11.dump b/runtime/syntax/testdir/dumps/vim_function_calls_11.dump
index 09576638a..06c9080fc 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_11.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_11.dump
@@ -10,11 +10,11 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@60
@75
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
-|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|s+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@55
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-@57|1|9@1|,|1| @8|7|4|%|
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+@57|1|9@1|,|1| @8|7|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_12.dump b/runtime/syntax/testdir/dumps/vim_function_calls_12.dump
index e4a47d383..4b22be851 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_12.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_12.dump
@@ -1,20 +1,20 @@
-|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|b+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|b+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
> @74
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|w+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|w+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|t+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|l+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|l+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|l+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|l+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|a+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|a+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|a+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|a+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
-|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-@57|2|1|7|,|0|-|1| @6|8|1|%|
+|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+@57|2|1|7|,|0|-|1| @6|7|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_13.dump b/runtime/syntax/testdir/dumps/vim_function_calls_13.dump
index 6ad6d7d0a..8ded6b7c9 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_13.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_13.dump
@@ -1,5 +1,5 @@
-|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
-|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
+|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@48
+|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|m+0#0000000&|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@53
@75
@75
|l+0#af5f00255&|e|t| +0#0000000&|f|o@1| |=+0#af5f00255&| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|#|f|o@1|(+0#e000e06#ffffff0|4+0#e000002&|2|)+0#e000e06&| +0#0000000&@50
@@ -17,4 +17,4 @@
|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@55
|c+0#af5f00255&|a|l@1| +0#0000000&|l+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@55
-@57|2|3|5|,|1| @8|8@1|%|
+@57|2|3|5|,|1| @8|8|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_14.dump b/runtime/syntax/testdir/dumps/vim_function_calls_14.dump
index b5d23c07f..17c35c606 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_14.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_14.dump
@@ -4,17 +4,17 @@
@75
|c+0#af5f00255&|a|l@1| +0#0000000&|<+0#e000e06&|S|I|D|>|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@52
> @74
-|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|l+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|a+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
-|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|.|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|b+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|w+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|t+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|l+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|a+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|v+0#00e0e07&|:|s+0#0000000&|u|b|s|t|i|t|u|t|e|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
@75
|c+0#af5f00255&|a|l@1| +0#0000000&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@46
|c+0#af5f00255&|a|l@1| +0#0000000&|g+0#00e0e07&|:|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|#|s|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
@75
@75
-@57|2|5|3|,|0|-|1| @6|9|5|%|
+@57|2|5|3|,|0|-|1| @6|9|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_15.dump b/runtime/syntax/testdir/dumps/vim_function_calls_15.dump
index 50bf79772..4a38aee85 100644
--- a/runtime/syntax/testdir/dumps/vim_function_calls_15.dump
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_15.dump
@@ -1,20 +1,20 @@
| +0&#ffffff0@74
|"+0#0000e05&| |C|h|a|i|n|e|d| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50
@75
-|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|)|.+0#af5f00255&|b+0#0000001#ffff4012|a|r|(+0#e000e06#ffffff0|)| +0#0000000&@51
-|c+0#af5f00255&|a|l@1| +0#0000000&|m+0#0000001#ffff4012|o|d|u|l|e|.|f|o@1|(+0#e000e06#ffffff0|)|.+0#af5f00255&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|b+0#0000001#ffff4012|a|r|(+0#e000e06#ffffff0|)| +0#0000000&@51
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@44
> @74
@75
-|"+0#0000e05&| |I|s@1|u|e| |#|1|7@1|6@1| |(|v|a|l|i|d| |f|u|n|c|t|i|o|n| |c|a|l@1| |h|i|g|h|l|i|g|h|t|e|d| |a|s| |e|r@1|o|r|)| +0#0000000&@17
+|"+0#0000e05&| |D|i|c|t|-|k|e|y| |o|n|l|y| +0#0000000&@59
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|.|4+0#0000001#ffff4012|2|(+0#e000e06#ffffff0|)| +0#0000000&@58
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|4+0#0000001#ffff4012|2|(+0#e000e06#ffffff0|)| +0#0000000&@55
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|4+0#0000001#ffff4012|2|(+0#e000e06#ffffff0|)| +0#0000000&@52
@75
-|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.+0#af5f00255&|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&@54
-|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.+0#af5f00255&|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@47
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|.|4+0#0000001#ffff4012|2|l|i|f|e|(+0#e000e06#ffffff0|)| +0#0000000&@54
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|4+0#0000001#ffff4012|2|l|i|f|e|(+0#e000e06#ffffff0|)| +0#0000000&@51
+|e+0#af5f00255&|c|h|o| +0#0000000&|m|o|d|u|l|e|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)|.+0#0000000&|4+0#0000001#ffff4012|2|l|i|f|e|(+0#e000e06#ffffff0|)| +0#0000000&@48
@75
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|2|7|1|,|0|-|1| @6|B|o|t|
+@75
+|"+0#0000e05&| |I|s@1|u|e| |#|1|7@1|6@1| |(|v|a|l|i|d| |f|u|n|c|t|i|o|n| |c|a|l@1| |h|i|g|h|l|i|g|h|t|e|d| |a|s| |e|r@1|o|r|)| +0#0000000&@17
+@57|2|7|1|,|0|-|1| @6|9|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_function_calls_16.dump b/runtime/syntax/testdir/dumps/vim_function_calls_16.dump
new file mode 100644
index 000000000..21d60f2f0
--- /dev/null
+++ b/runtime/syntax/testdir/dumps/vim_function_calls_16.dump
@@ -0,0 +1,20 @@
+|"+0#0000e05#ffffff0| |I|s@1|u|e| |#|1|7@1|6@1| |(|v|a|l|i|d| |f|u|n|c|t|i|o|n| |c|a|l@1| |h|i|g|h|l|i|g|h|t|e|d| |a|s| |e|r@1|o|r|)| +0#0000000&@17
+@75
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|f+0#0000001#ffff4012|o@1|(+0#e000e06#ffffff0|)| +0#0000000&@54
+|c+0#af5f00255&|a|l@1| +0#0000000&|m|o|d|u|l|e|[|0+0#e000002&|]+0#0000000&|.|s+0#0000001#ffff4012|u|b|s|t|i|t|u|t|e|(+0#e000e06#ffffff0|)| +0#0000000&@47
+> @74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|2|8@1|,|0|-|1| @6|B|o|t|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_04.dump b/runtime/syntax/testdir/dumps/vim_variables_04.dump
index b633655ba..d82972b6f 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_04.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_04.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|s+0#00e0e07&|:|f|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@56
@75
|l+0#af5f00255&|e|t| +0#0000000&|t+0#00e0e07&|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
-@57|7|3|,|1| @9|1|7|%|
+@57|7|3|,|1| @9|1|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_06.dump b/runtime/syntax/testdir/dumps/vim_variables_06.dump
index 031115c19..891b02243 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_06.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_06.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|v+0#00e0e07&|:|t|r|u|e| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@56
|l+0#af5f00255&|e|t| +0#0000000&|v+0#00e0e07&|:|t|r|u|e| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@56
|l+0#af5f00255&|e|t| +0#0000000&|v+0#00e0e07&|:|t|r|u|e| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@56
-@57|1|0|9|,|0|-|1| @6|2|6|%|
+@57|1|0|9|,|0|-|1| @6|2|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_08.dump b/runtime/syntax/testdir/dumps/vim_variables_08.dump
index 5ca7f0d36..d9d3d6b81 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_08.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_08.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|t|_|k|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|E|s|c|>|[+0#e000002&|2|3|4|;|"| +0#0000000&@49
@75
|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|a|r|i| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@58
-@57|1|4|5|,|0|-|1| @6|3|5|%|
+@57|1|4|5|,|0|-|1| @6|3|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_09.dump b/runtime/syntax/testdir/dumps/vim_variables_09.dump
index 737a044c6..1d402f164 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_09.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_09.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|a|l|e|p|h| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|a|l|e|p|h| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@54
@75
-@57|1|6|3|,|1| @8|4|0|%|
+@57|1|6|3|,|1| @8|3|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_10.dump b/runtime/syntax/testdir/dumps/vim_variables_10.dump
index d7a7d46d4..6cb146141 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_10.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_10.dump
@@ -17,4 +17,4 @@
@75
|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |.+0#af5f00255&|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@52
|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |.+0#af5f00255&@1|=| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
-@57|1|8|1|,|1| @8|4@1|%|
+@57|1|8|1|,|1| @8|4|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_11.dump b/runtime/syntax/testdir/dumps/vim_variables_11.dump
index 042f71235..6bb0142d6 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_11.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_11.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|[|&+0#00e0e07&|a|r|i|,+0#0000000&| |&+0#00e0e07&|b|k|c|;+0#0000000&| |&+0#00e0e07&|c|m|p|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@45
|l+0#af5f00255&|e|t| +0#0000000&|[|&+0#00e0e07&|a|r|i|,+0#0000000&| @64
@6|\+0#e000e06&| +0#0000000&|&+0#00e0e07&|b|k|c|;+0#0000000&| @61
-@57|1|9@1|,|1| @8|4|9|%|
+@57|1|9@1|,|1| @8|4|8|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_12.dump b/runtime/syntax/testdir/dumps/vim_variables_12.dump
index d2acc484d..c125fd1ad 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_12.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_12.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@49
|.+0#e000002&@2| +0#0000000&@71
|E+0#e000e06&|N|D| +0#0000000&@71
-@57|2|1|7|,|7| @8|5|3|%|
+@57|2|1|7|,|7| @8|5|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_13.dump b/runtime/syntax/testdir/dumps/vim_variables_13.dump
index 11593c5d7..4d8624707 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_13.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_13.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| |"+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@53
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| ||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@50
|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| |"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@52
-@57|2|3|5|,|1| @8|5|8|%|
+@57|2|3|5|,|1| @8|5|6|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_14.dump b/runtime/syntax/testdir/dumps/vim_variables_14.dump
index e85091b1d..9d9f09ccc 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_14.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_14.dump
@@ -17,4 +17,4 @@
|u+0#af5f00255&|n|l|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@64
|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@63
@75
-@57|2|5|3|,|1| @8|6|3|%|
+@57|2|5|3|,|1| @8|6|1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_15.dump b/runtime/syntax/testdir/dumps/vim_variables_15.dump
index 567fd59df..ec564a34b 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_15.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_15.dump
@@ -17,4 +17,4 @@
@75
|c+0#af5f00255&|o|n|s|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e+0#00e0e07&|x|p|r| +0#0000000&@51
@75
-@57|2|7|1|,|0|-|1| @6|6|7|%|
+@57|2|7|1|,|0|-|1| @6|6|5|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_16.dump b/runtime/syntax/testdir/dumps/vim_variables_16.dump
index 5a4618c68..264c91ff8 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_16.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_16.dump
@@ -17,4 +17,4 @@
|.+0#e000002&@2| +0#0000000&@71
|E+0#e000e06&|N|D| +0#0000000&@71
@75
-@57|2|8|9|,|1| @8|7|2|%|
+@57|2|8|9|,|1| @8|7|0|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_17.dump b/runtime/syntax/testdir/dumps/vim_variables_17.dump
index 2a49205a9..4c905cf25 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_17.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_17.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@63
@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63
-@57|3|0|7|,|0|-|1| @6|7|6|%|
+@57|3|0|7|,|0|-|1| @6|7|4|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_18.dump b/runtime/syntax/testdir/dumps/vim_variables_18.dump
index 4e6913502..226a53284 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_18.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_18.dump
@@ -17,4 +17,4 @@
|l+0#af5f00255&|o|c|k|v|a|r|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&|"+0#e000002&|F|o@1|"| +0#0000000&@45
@75
|l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@61
-@57|3|2|5|,|1| @8|8|1|%|
+@57|3|2|5|,|1| @8|7|9|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_19.dump b/runtime/syntax/testdir/dumps/vim_variables_19.dump
index 5510ea640..3872c439a 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_19.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_19.dump
@@ -17,4 +17,4 @@
@6|"+0#0000e05&|\| |c|o|m@1|e|n|t| +0#0000000&@58
@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63
@75
-@57|3|4|3|,|0|-|1| @6|8|5|%|
+@57|3|4|3|,|0|-|1| @6|8|3|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_20.dump b/runtime/syntax/testdir/dumps/vim_variables_20.dump
index 2b1c0c7e3..0b5efe084 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_20.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_20.dump
@@ -17,4 +17,4 @@
@75
|u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@59
|u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@55
-@57|3|6|1|,|0|-|1| @6|9|0|%|
+@57|3|6|1|,|0|-|1| @6|8@1|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_21.dump b/runtime/syntax/testdir/dumps/vim_variables_21.dump
index a721556da..fdb1ca07f 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_21.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_21.dump
@@ -17,4 +17,4 @@
|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|e|t|(+0#e000e06&|l+0#00e0e07&|:|,+0#0000000&| |'+0#e000002&|f|o@1|'|,+0#0000000&| |4+0#e000002&|2|)+0#e000e06&| +0#0000000&@51
|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|e|t|(+0#e000e06&|s+0#00e0e07&|:|,+0#0000000&| |'+0#e000002&|f|o@1|'|,+0#0000000&| |4+0#e000002&|2|)+0#e000e06&| +0#0000000&@51
|e+0#af5f00255&|c|h|o| +0#0000000&|g+0#00e0e07&|e|t|(+0#e000e06&|a+0#00e0e07&|:|,+0#0000000&| |'+0#e000002&|f|o@1|'|,+0#0000000&| |4+0#e000002&|2|)+0#e000e06&| +0#0000000&@51
-@57|3|7|9|,|1| @8|9|5|%|
+@57|3|7|9|,|1| @8|9|2|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_22.dump b/runtime/syntax/testdir/dumps/vim_variables_22.dump
index 48956348b..af2e31ae8 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_22.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_22.dump
@@ -17,4 +17,4 @@
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|c+0#0000000&|h|a|n@1|e|l| |&+0#00e0e07&|i+0#0000000&|n|c@1|o|m@1|a|n|d| |&+0#00e0e07&|m+0#0000000&|o|u|s|e|s|c|r|o|l@1| |&+0#00e0e07&|p+0#0000000&|u|m|b|l|e|n|d| |&+0#00e0e07&|r+0#0000000&|e|d|r|a|w|d|e|b|u|g| |&+0#00e0e07&|s+0#0000000&|c|r|o|l@1|b|a|c|k| @1
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|s+0#0000000&|h|a|d|a| |&+0#00e0e07&|s+0#0000000&|h|a|d|a|f|i|l|e| |&+0#00e0e07&|s+0#0000000&|t|a|t|u|s|c|o|l|u|m|n| |&+0#00e0e07&|t+0#0000000&|e|r|m|p|a|s|t|e|f|i|l|t|e|r| |&+0#00e0e07&|t|e|r|m|s|y|n|c| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|a|r| @3
|e+0#af5f00255&|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| @60
-@57|3|9|7|,|1| @8|9@1|%|
+@57|3|9|7|,|1| @8|9|7|%|
diff --git a/runtime/syntax/testdir/dumps/vim_variables_23.dump b/runtime/syntax/testdir/dumps/vim_variables_23.dump
index a8897b5ad..e0a97da08 100644
--- a/runtime/syntax/testdir/dumps/vim_variables_23.dump
+++ b/runtime/syntax/testdir/dumps/vim_variables_23.dump
@@ -1,5 +1,15 @@
|e+0#af5f00255#ffffff0|c|h|o| +0#0000000&|&+0#00e0e07&|w+0#0000000&|i|n|b|l|e|n|d| @60
-> @74
+@75
+|"+0#0000e05&| |D|i|c|t|-|k|e|y| |o|n|l|y| +0#0000000&@59
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|.+0#0000000&|4+0#00e0e07&|2| +0#0000000&@60
+>e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|[+0#0000000&|0+0#e000002&|]+0#0000000&|.|4+0#00e0e07&|2| +0#0000000&@57
+|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|.+0#0000000&|f|o@1|(+0#e000e06&|)|.+0#0000000&|4+0#00e0e07&|2| +0#0000000&@54
+@75
+|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|.+0#0000000&|4+0#00e0e07&|2|l|i|f|e| +0#0000000&@56
+|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|[+0#0000000&|0+0#e000002&|]+0#0000000&|.|4+0#00e0e07&|2|l|i|f|e| +0#0000000&@53
+|e+0#af5f00255&|c|h|o| +0#0000000&|m+0#00e0e07&|o|d|u|l|e|.+0#0000000&|f|o@1|(+0#e000e06&|)|.+0#0000000&|4+0#00e0e07&|2|l|i|f|e| +0#0000000&@50
+@75
|~+0#4040ff13&| @73
|~| @73
|~| @73
@@ -7,14 +17,4 @@
|~| @73
|~| @73
|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|4|1@1|,|0|-|1| @6|B|o|t|
+| +0#0000000&@56|4|1|5|,|1| @8|B|o|t|
diff --git a/runtime/syntax/testdir/input/vim_function_calls.vim b/runtime/syntax/testdir/input/vim_function_calls.vim
index 60158161c..8e4e85097 100644
--- a/runtime/syntax/testdir/input/vim_function_calls.vim
+++ b/runtime/syntax/testdir/input/vim_function_calls.vim
@@ -270,6 +270,17 @@ call module.foo().bar()
call module.foo().substitute()
+" Dict-key only
+
+echo module.42()
+echo module[0].42()
+echo module.foo().42()
+
+echo module.42life()
+echo module[0].42life()
+echo module.foo().42life()
+
+
" Issue #17766 (valid function call highlighted as error)
call module[0].foo()
diff --git a/runtime/syntax/testdir/input/vim_variables.vim b/runtime/syntax/testdir/input/vim_variables.vim
index d062efbb0..255bc9f98 100644
--- a/runtime/syntax/testdir/input/vim_variables.vim
+++ b/runtime/syntax/testdir/input/vim_variables.vim
@@ -409,3 +409,13 @@ echo &channel &inccommand &mousescroll &pumblend &redrawdebug &scrollback
echo &shada &shadafile &statuscolumn &termpastefilter &termsync &winbar
echo &winblend
+" Dict-key only
+
+echo module.42
+echo module[0].42
+echo module.foo().42
+
+echo module.42life
+echo module[0].42life
+echo module.foo().42life
+
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 656fc3f12..08d2a2b85 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 <
dougk...@gmail.com>
-" Last Change: 2026 Jun 09
+" Last Change: 2026 Jun 12
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
@@ -290,13 +290,13 @@ Vim9 syn keyword vim9Boolean true false
" Numbers {{{2
" =======
syn case ignore
-syn match vimNumber "\<\d\+\%('\d\+\)*" skipwhite nextgroup=@vimComment,vimSubscript,vimGlobal,vimSubst1
+syn match vimNumber "\<\d\+\%('\d\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets,vimGlobal,vimSubst1
syn match vimNumber "\<\d\+\%('\d\+\)*\.\d\+\%(e[+-]\=\d\+\)\=" skipwhite nextgroup=@vimComment
-syn match vimNumber "\<0b[01]\+\%('[01]\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
-syn match vimNumber "\<0o\=\o\+\%('\o\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
-syn match vimNumber "\<0x\x\+\%('\x\+\)*" skipwhite nextgroup=@vimComment,vimSubscript
+syn match vimNumber "\<0b[01]\+\%('[01]\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
+syn match vimNumber "\<0o\=\o\+\%('\o\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
+syn match vimNumber "\<0x\x\+\%('\x\+\)*" skipwhite nextgroup=@vimComment,vimSubscriptBrackets
syn match vimNumber '\<0z\>' skipwhite nextgroup=@vimComment
-syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vimComment,vimSubscript
+syn match vimNumber '\<0z\%(\x\x\)\+\%(\.\%(\x\x\)\+\)*' skipwhite nextgroup=@vimComment,vimSubscriptBrackets
syn case match
" All vimCommands are contained by vimIsCommand. {{{2
@@ -309,20 +309,28 @@ syn match vimIsCommand "\<\h\w*\>" nextgroup=vimBang contains=vimCommand
syn match vimBang contained "!"
syn match vimWhitespace contained "\s\+"
-syn region vimSubscript contained matchgroup=vimSubscriptBracket start="\[" end="]" nextgroup=vimSubscript contains=@vimExprList
+syn region vimSubscriptBrackets contained
+ \ matchgroup=vimSubscriptBracket
+ \ start="\["
+ \ end="]"
+ \ nextgroup=vimSubscriptBrackets,vimSubscriptDot
+ \ contains=@vimExprList
+syn match vimSubscriptDot contained "\." nextgroup=vimVar,vimVarKey,vimUserFunc,vimUserFuncKey
-syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vim9Super,vim9This
-syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vimVarScope
-syn match vimVar "\<a:\%(000\|1\=[0-9]\|20\)\>" nextgroup=vimSubscript contains=vimVarScope
-syn match vimFBVar contained "\<[bwglsta]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscript contains=vimVarScope
+syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vim9Super,vim9This
+" dict-key only
+syn match vimVarKey contained "\<\d\w*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot
+syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
+syn match vimVar "\<a:\%(000\|1\=[0-9]\|20\)\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
+syn match vimFBVar contained "\<[bwglsta]:\h[a-zA-Z0-9#_]*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot contains=vimVarScope
" match the scope prefix independently of the retrofitted scope dictionary
syn match vimVarScope contained "\<[bwglstav]:"
-syn match vimVimVar contained "\<[bwglstav]:\%(\h\|\d\)\@!" nextgroup=vimSubscript
+syn match vimVimVar contained "\<[bwglstav]:\%(\h\|\d\)\@!" nextgroup=vimSubscriptBrackets,vimSubscriptDot
-syn match vimVarNameError contained "\<\h\w*\>"
-syn match vimVimVar "\<v:" nextgroup=vimSubscript,vimVimVarName,vimVarNameError
-syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscript,vimOptionVarName,vimVarNameError
+syn match vimVarNameError contained "\<\h\w*\>" nextgroup=vimSubscriptBrackets,vimSubscriptDot " just abort highlighting rather than match nextgroup?
+syn match vimVimVar "\<v:" nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVimVarName,vimVarNameError
+syn match vimOptionVar "&\%([lg]:\)\=" nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimOptionVarName,vimVarNameError
syn cluster vimSpecialVar contains=vimEnvvar,vimLetRegister,vimOptionVar,vimVimVar
Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs
@@ -330,8 +338,8 @@ Vim9 syn match vimVar contained "\<\h\w*\ze<" nextgroup=vim9TypeArgs
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+[-+/*%]\==\%(\s\|$\)"
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s\+\.\.=\%(\s\|$\)"
Vim9 syn match vim9LhsVariable "\s\=\%([bwgt]:\)\=\h[a-zA-Z0-9#_]*\ze\s\+=<<\s" skipwhite nextgroup=vimLetHeredoc contains=vimVarScope
-Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\[" nextgroup=vimSubscript
-Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\." nextgroup=vimOper contains=vim9Super,vim9This
+Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\[" nextgroup=vimSubscriptBrackets
+Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\." nextgroup=vimSubscriptDot contains=vim9Super,vim9This
Vim9 syn match vim9LhsVariable "\s\=\h[a-zA-Z0-9#_]*\ze\s*->" contains=vim9Super,vim9This
Vim9 syn match vim9LhsVariableList "\[\_[^]]\+]\ze\s\+[-+/*%]\==" contains=vimVar,@vimSpecialVar
@@ -547,9 +555,9 @@ syn match vimOper "=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList
syn match vimOper "\%#=1\%(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\)[?#]\=" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
syn match vimOper "\<is\%(not\)\=\>" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
syn match vimOper "\<is\%(not\)\=[?#]" skipwhite skipnl nextgroup=@vimOperContinue,@vimExprList,vimContinueString,vimSpecFile
-syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup nextgroup=vimSubscript
-syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
-syn region vimOperParen contained matchgroup=vimSep start="\[" end="]" contains=@vimOperGroup nextgroup=vimSubscript,vimVar
+syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot
+syn region vimOperParen matchgroup=vimSep start="#\={" end="}" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVar
+syn region vimOperParen contained matchgroup=vimSep start="\[" end="]" contains=@vimOperGroup nextgroup=vimSubscriptBrackets,vimSubscriptDot,vimVar
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
syn match vimOperError ")"
endif
@@ -1060,8 +1068,8 @@ syn region vimPatSepZone oneline contained matchgroup=vimPatSepZ start="\%\
syn region vimPatRegion contained transparent matchgroup=vimPatSepR start="\[z%]\=(" end="\)" contains=@vimSubstList oneline
syn match vimNotPatSep contained "\\"
syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
-syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscript contains=@vimStringGroup extend
-syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\@]'+lc=1 end=+'+ nextgroup=vimSubscript contains=vimQuoteEscape extend
+syn region vimString oneline keepend matchgroup=vimString start=+[^a-zA-Z\@]"+lc=1 skip=+\\\|\"+ matchgroup=vimStringEnd end=+"+ nextgroup=vimSubscriptBrackets contains=@vimStringGroup extend
+syn region vimString oneline matchgroup=vimString start=+[^a-zA-Z\@]'+lc=1 end=+'+ nextgroup=vimSubscriptBrackets contains=vimQuoteEscape extend
"syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\|\+" end="/" contains=@vimStringGroup " see tst45.vim
syn match vimEscape contained "\."
@@ -1071,17 +1079,17 @@ syn match vimEscape contained "\<" contains=vimNotation
syn match vimEscape contained "\<\*[^>]*>\=>"
syn match vimQuoteEscape contained "''"
-syn region vimString oneline matchgroup=vimString start=+$'+ end=+'+ nextgroup=vimSubscript contains=@vimStringInterpolation,vimQuoteEscape extend
-syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ nextgroup=vimSubscript contains=@vimStringInterpolation,@vimStringGroup extend
+syn region vimString oneline matchgroup=vimString start=+$'+ end=+'+ nextgroup=vimSubscriptBrackets contains=@vimStringInterpolation,vimQuoteEscape extend
+syn region vimString oneline matchgroup=vimString start=+$"+ end=+"+ nextgroup=vimSubscriptBrackets contains=@vimStringInterpolation,@vimStringGroup extend
syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList
syn match vimStringInterpolationBrace contained "{{"
syn match vimStringInterpolationBrace contained "}}"
syn cluster vimStringInterpolation contains=vimStringInterpolationExpr,vimStringInterpolationBrace
-syn region vimContinueString contained matchgroup=vimContinueString start=+"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringGroup
-syn region vimContinueString contained matchgroup=vimContinueString start=+'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,vimQuoteEscape
-syn region vimContinueString contained matchgroup=vimContinueString start=+$"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringInterpolation,@vimStringGroup
-syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscript,vimComment contains=@vimContinue,@vimStringInterpolation,vimQuoteEscape
+syn region vimContinueString contained matchgroup=vimContinueString start=+"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringGroup
+syn region vimContinueString contained matchgroup=vimContinueString start=+'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,vimQuoteEscape
+syn region vimContinueString contained matchgroup=vimContinueString start=+$"+ skip=+
\s*\%(\\|["#]\ \)+ end=+"+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringInterpolation,@vimStringGroup
+syn region vimContinueString contained matchgroup=vimContinueString start=+$'+ skip=+
\s*\%(\\|["#]\ \)+ end=+'+ end="$" skipwhite nextgroup=vimSubscriptBrackets,vimComment contains=@vimContinue,@vimStringInterpolation,vimQuoteEscape
" Substitutions: {{{2
" =============
@@ -1215,7 +1223,7 @@ syn region vimVarList contained
\ start="\[" end="]"
\ skipwhite nextgroup=vimLetHeredoc
\ contains=@vimContinue,@vimSpecialVar,vimVar
-syn match vimLetVar contained "\<\%([bwglstav]:\)\=\h[a-zA-Z0-9#_]*\>\ze\%(\[.*]\)\=\s*=<<" skipwhite nextgroup=vimLetVarSubscript,vimLetHeredoc contains=vimVarScope,vimSubscript
+syn match vimLetVar contained "\<\%([bwglstav]:\)\=\h[a-zA-Z0-9#_]*\>\ze\%(\[.*]\)\=\s*=<<" skipwhite nextgroup=vimLetVarSubscript,vimLetHeredoc contains=vimVarScope,vimSubscriptBrackets
hi link vimLetVar vimVar
syn region vimLetVarSubscript contained
\ matchgroup=vimSubscriptBracket
@@ -2394,14 +2402,16 @@ 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,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
+syn match vimFunc contained "\<\l\w*\ze\s*(" skipwhite nextgroup=vimOperParen contains=vimFuncName
+" dict-key only
+syn match vimUserFuncKey contained "\%(\l\|\d\)\w*\ze\%(\s*(\|<.*>(\)" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vim9MethodName
+syn match vimUserFunc contained "\<[[:upper:]_]\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*\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,vim9TypeArgs 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*\ze[(<]" skipwhite nextgroup=vimOperParen,vim9TypeArgs contains=vimVarScope,vimNotation,vim9MethodName,vim9Super,vim9This
+Vim9 syn match vim9UserFunc "^\s*\zs\%(g:\)\=\%(\h\w*#\)\+\h\w*\ze[(<]" skipwhite nextgroup=vimOperParen contains=vimVarScope
+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
@@ -2821,7 +2831,9 @@ if !exists("skip_vim_syntax_inits")
hi def link vimUserCmdError Error
hi def link vimUserCmdKey vimCommand
hi def link vimUserFunc Normal
+ hi def link vimUserFuncKey vimUserFunc
hi def link vimVar Normal
+ hi def link vimVarKey vimVar
hi def link vimVarScope Identifier
hi def link vimVimgrep vimCommand
hi def link vimVimgrepadd vimCommand