summaryrefslogtreecommitdiffstats
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-01 15:38:38 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-01 15:38:38 +0200
commit8e4c8c853e3ffbd9258f89180692879ec6bce72b (patch)
tree4c9fffbb135d0f4d2bb150e8467549e97993c88b /src/testdir
parent586268721dd5d6e50903a8a457f02e0dda901856 (diff)
patch 8.2.1338: Vim9: assigning to script-local variable doesn't check typev8.2.1338
Problem: Vim9: assigning to script-local variable doesn't check type. Solution: Use the type. (issue #6591)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/test_vim9_script.vim23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index ec63c6f11c..196ddbe0a2 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -251,6 +251,29 @@ def Test_assignment_dict()
# type becomes dict<any>
let somedict = rand() > 0 ? #{a: 1, b: 2} : #{a: 'a', b: 'b'}
+
+ # assignment to script-local dict
+ let lines =<< trim END
+ vim9script
+ let test: dict<any> = {}
+ def FillDict(): dict<any>
+ test['a'] = 43
+ return test
+ enddef
+ assert_equal(#{a: 43}, FillDict())
+ END
+ call CheckScriptSuccess(lines)
+
+ lines =<< trim END
+ vim9script
+ let test: dict<any>
+ def FillDict(): dict<any>
+ test['a'] = 43
+ return test
+ enddef
+ FillDict()
+ END
+ call CheckScriptFailure(lines, 'E1103:')
enddef
def Test_assignment_local()