patch 8.2.2621: typval2type() cannot handle recursive structures
Problem: typval2type() cannot handle recursive structures.
Solution: Use copyID. (closes #7979)
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index 0ba933b..b57d86d 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -6606,6 +6606,13 @@
call assert_equal('list<number>', typename([123]))
call assert_equal('dict<number>', typename(#{key: 123}))
call assert_equal('list<dict<number>>', typename([#{key: 123}]))
+
+ let l = []
+ let d = #{a: 0}
+ let l = [d]
+ let l[0].e = #{b: l}
+ call assert_equal('list<dict<any>>', typename(l))
+ call assert_equal('dict<any>', typename(d))
endfunc
"-------------------------------------------------------------------------------