diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2024-05-01 11:44:17 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-05-01 11:44:17 +0200 |
commit | b2e42b9be0ffa193ef32ad5a5846ef46f5cc4e8c (patch) | |
tree | cde59e471fa2fc50d6f2c7f5d4ac2fc332266e0b /src/testdir/test_vim9_class.vim | |
parent | ca4b81a7ae9ed524c7097dda2638cf55f2672afc (diff) |
patch 9.1.0385: Vim9: crash with null_class and null_objectv9.1.0385
Problem: Vim9: crash with null_class and null_object
(Aliaksei Budavei)
Solution: Handle null_class and null_object correctly
(Yegappan Lakshmanan)
fixes: #14678
closes: #14681
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir/test_vim9_class.vim')
-rw-r--r-- | src/testdir/test_vim9_class.vim | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index ed3aac0be2..0a48b822df 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -545,6 +545,52 @@ def Test_using_null_class() @_ = null_class.member END v9.CheckDefExecAndScriptFailure(lines, ['E715: Dictionary required', 'E1363: Incomplete type']) + + # Test for using a null class as a value + lines =<< trim END + vim9script + echo empty(null_class) + END + v9.CheckSourceFailure(lines, 'E1405: Class "" cannot be used as a value', 2) + + # Test for using a null class with string() + lines =<< trim END + vim9script + assert_equal('class [unknown]', string(null_class)) + END + v9.CheckSourceSuccess(lines) + + # Test for using a null class with string() + lines =<< trim END + vim9script + assert_equal(12, type(null_class)) + assert_equal('class<Unknown>', typename(null_class)) + END + v9.CheckSourceSuccess(lines) +enddef + +def Test_using_null_object() + # Test for using a null object as a value + var lines =<< trim END + vim9script + assert_equal(1, empty(null_object)) + END + v9.CheckSourceSuccess(lines) + + # Test for using a null object with string() + lines =<< trim END + vim9script + assert_equal('object of [unknown]', string(null_object)) + END + v9.CheckSourceSuccess(lines) + + # Test for using a null object with string() + lines =<< trim END + vim9script + assert_equal(13, type(null_object)) + assert_equal('object<Unknown>', typename(null_object)) + END + v9.CheckSourceSuccess(lines) enddef def Test_class_interface_wrong_end() |