patch 8.2.2300: Vim9: wrong order on type stack when using dict
Problem: Vim9: wrong order on type stack when using dict.
Solution: Generate constants before a dict. (closes #7619)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index e613f10..4941650 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1094,6 +1094,8 @@
$ENVVAR = 'env'
assert_equal('aenv', 'a' .. $ENVVAR)
+
+ assert_equal('val', '' .. {key: 'val'}['key'])
END
CheckDefAndScriptSuccess(lines)
enddef
diff --git a/src/version.c b/src/version.c
index 07113c4..d106f3b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2300,
+/**/
2299,
/**/
2298,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 4007641..0d19b7d 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -3027,6 +3027,8 @@
if (d == NULL)
return FAIL;
+ if (generate_ppconst(cctx, ppconst) == FAIL)
+ return FAIL;
for (;;)
{
char_u *key = NULL;