patch 9.0.1662: crash when using a class member twice
Problem: Crash when using a class member twice. (Christian J. Robinson)
Solution: Make a copy of the value.
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 00b8432..f1acdf3 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -838,6 +838,23 @@
END
v9.CheckScriptSuccess(lines)
+ # using static class member twice
+ lines =<< trim END
+ vim9script
+
+ class HTML
+ static author: string = 'John Doe'
+
+ static def MacroSubstitute(s: string): string
+ return substitute(s, '{{author}}', author, 'gi')
+ enddef
+ endclass
+
+ assert_equal('some text', HTML.MacroSubstitute('some text'))
+ assert_equal('some text', HTML.MacroSubstitute('some text'))
+ END
+ v9.CheckScriptSuccess(lines)
+
# access private member in lambda
lines =<< trim END
vim9script