annotate src/testdir/test_vim9_import.vim @ 35172:c98f002b1fe4 default tip

runtime(doc): fix typo in usr_52.txt Commit: https://github.com/vim/vim/commit/b7258738f80f26be302a84a99f968b3bdc2f29bb Author: Christian Brabandt <cb@256bit.org> Date: Sun May 12 19:04:47 2024 +0200 runtime(doc): fix typo in usr_52.txt fixes: https://github.com/vim/vim/issues/14758 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 12 May 2024 19:15:08 +0200
parents 0ef2499e9812
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Test import/export of the Vim9 script language.
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2 " Also the autoload mechanism.
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
4 source check.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
5 source term_util.vim
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
6 import './vim9.vim' as v9
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8 let s:export_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
9 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10 var name: string = 'bob'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 def Concat(arg: string): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12 return name .. arg
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
13 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
14 g:result = Concat('bie')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
15 g:localname = name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
16
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
17 export const CONST = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
18 export var exported = 9876
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
19 export var exp_name = 'John'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
20 export def Exported(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
21 return 'Exported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
22 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
23 export def ExportedValue(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
24 return exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
25 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
26 export def ExportedInc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
27 exported += 5
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
28 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
29 export final theList = [1]
27146
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
30 export def AddSome(s: string): string
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
31 return s .. 'some'
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
32 enddef
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
33 export var AddRef = AddSome
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
34 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
35
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
36 def s:Undo_export_script_lines()
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
37 unlet g:result
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
38 unlet g:localname
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
39 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
40
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
41 def Test_vim9_import_export()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
42 writefile(s:export_script_lines, 'Xexport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
43 var import_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
44 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
45 var dir = './'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
46 var ext = ".vim"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
47 import dir .. 'Xexport' .. ext as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
48
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
49 g:exported1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
50 expo.exported += 3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
51 g:exported2 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
52 g:exported3 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
53
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
54 expo.ExportedInc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
55 g:exported_i1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
56 g:exported_i2 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
57
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
58 expo.exported = 11
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
59 g:exported_s1 = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
60 g:exported_s2 = expo.ExportedValue()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
61
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
62 g:imported_func = expo.Exported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
63
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
64 def GetExported(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
65 var local_dict = {ref: expo.Exported}
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
66 return local_dict.ref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
67 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
68 g:funcref_result = GetExported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
69
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
70 def GetName(): string
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
71 return expo.exp_name .. 'son'
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
72 enddef
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
73 g:long_name = GetName()
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
74
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
75 g:imported_name = expo.exp_name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
76 expo.exp_name ..= ' Doe'
27177
eb0a1108f885 patch 8.2.4117: Vim9: wrong white space error after using imported item
Bram Moolenaar <Bram@vim.org>
parents: 27150
diff changeset
77 expo.exp_name = expo.exp_name .. ' Maar'
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
78 g:imported_name_appended = expo.exp_name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
79 g:exported_later = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
80
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
81 expo.theList->add(2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
82 assert_equal([1, 2], expo.theList)
27146
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
83
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
84 assert_equal('andthensome', 'andthen'->expo.AddSome())
648a5f658990 patch 8.2.4102: Vim9: import cannot be used after method
Bram Moolenaar <Bram@vim.org>
parents: 27140
diff changeset
85 assert_equal('awesome', 'awe'->expo.AddRef())
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
86 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
87 writefile(import_script_lines, 'Ximport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
88 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
89
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
90 assert_equal('bobbie', g:result)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
91 assert_equal('bob', g:localname)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
92 assert_equal(9876, g:exported1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
93 assert_equal(9879, g:exported2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
94 assert_equal(9879, g:exported3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
95
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
96 assert_equal(9884, g:exported_i1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
97 assert_equal(9884, g:exported_i2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
98
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
99 assert_equal(11, g:exported_s1)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
100 assert_equal(11, g:exported_s2)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
101 assert_equal(11, g:exported_later)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
102
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
103 assert_equal('Exported', g:imported_func)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
104 assert_equal('Exported', g:funcref_result)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
105 assert_equal('John', g:imported_name)
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
106 assert_equal('Johnson', g:long_name)
27177
eb0a1108f885 patch 8.2.4117: Vim9: wrong white space error after using imported item
Bram Moolenaar <Bram@vim.org>
parents: 27150
diff changeset
107 assert_equal('John Doe Maar', g:imported_name_appended)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
108 assert_false(exists('g:name'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
109
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
110 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
111 unlet g:exported1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
112 unlet g:exported2
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
113 unlet g:exported3
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
114 unlet g:exported_i1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
115 unlet g:exported_i2
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
116 unlet g:exported_later
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
117 unlet g:imported_func
27265
8a097fc07aa4 patch 8.2.4161: Vim9: warning for missing white space after imported variable
Bram Moolenaar <Bram@vim.org>
parents: 27233
diff changeset
118 unlet g:imported_name g:long_name g:imported_name_appended
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
119 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
120
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
121 # similar, with line breaks
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
122 var import_line_break_script_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
123 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
124 import './Xexport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
125 as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
126 g:exported = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
127 expo.exported += 7
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
128 g:exported_added = expo.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
129 g:imported_func = expo.Exported()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
130 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
131 writefile(import_line_break_script_lines, 'Ximport_lbr.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
132 source Ximport_lbr.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
133
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
134 assert_equal(11, g:exported)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
135 assert_equal(18, g:exported_added)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
136 assert_equal('Exported', g:imported_func)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
137
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
138 # exported script not sourced again
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
139 assert_false(exists('g:result'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
140 unlet g:exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
141 unlet g:exported_added
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
142 unlet g:imported_func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
143 delete('Ximport_lbr.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
144
27499
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
145 var import_shadows_cmdmod_lines =<< trim END
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
146 vim9script
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
147 import './Xexport.vim' as vim9
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
148 vim9.exp_name = 'Shadow'
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
149 assert_equal('Shadow', vim9.exp_name)
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
150 END
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
151 v9.CheckScriptSuccess(import_shadows_cmdmod_lines)
df414fc12eed patch 8.2.4277: Vim9: an import does not shadow a command modifier
Bram Moolenaar <Bram@vim.org>
parents: 27472
diff changeset
152
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
153 var line_break_before_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
154 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
155 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
156 g:exported = expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
157 .exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
158 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
159 writefile(line_break_before_dot, 'Ximport_lbr_before_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
160 assert_fails('source Ximport_lbr_before_dot.vim', 'E1060:', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
161 delete('Ximport_lbr_before_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
162
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
163 var line_break_after_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
164 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
165 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
166 g:exported = expo.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
167 exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
168 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
169 writefile(line_break_after_dot, 'Ximport_lbr_after_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
170 assert_fails('source Ximport_lbr_after_dot.vim', 'E1074:', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
171 delete('Ximport_lbr_after_dot.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
172
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
173 var import_star_as_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
174 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
175 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
176 def UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
177 g:exported_def = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
178 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
179 g:exported_script = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
180 assert_equal(1, exists('Export.exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
181 assert_equal(0, exists('Export.notexported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
182 UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
183 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
184 writefile(import_star_as_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
185 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
186
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
187 assert_equal(18, g:exported_def)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
188 assert_equal(18, g:exported_script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
189 unlet g:exported_def
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
190 unlet g:exported_script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
191
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
192 var import_star_as_lines_no_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
193 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
194 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
195 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
196 var dummy = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
197 var imported = Export + dummy
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
198 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
199 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
200 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
201 writefile(import_star_as_lines_no_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
202 assert_fails('source Ximport.vim', 'E1060:', '', 2, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
203
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
204 var import_star_as_lines_dot_space =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
205 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
206 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
207 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
208 var imported = Export . exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
209 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
210 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
211 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
212 writefile(import_star_as_lines_dot_space, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
213 assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
214
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
215 writefile(s:export_script_lines, 'Xexport2.vim')
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
216 var import_as_duplicated =<< trim END
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
217 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
218 import './Xexport.vim' as expo
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
219 import './Xexport2.vim' as expo
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
220 END
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
221 writefile(import_as_duplicated, 'Ximport.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
222 assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
223 delete('Xexport2.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
224
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
225 var import_star_as_lines_script_no_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
226 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
227 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
228 g:imported_script = Export exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
229 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
230 writefile(import_star_as_lines_script_no_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
231 assert_fails('source Ximport.vim', 'E1060: Expected dot after name: Export exported')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
232
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
233 var import_star_as_lines_script_space_after_dot =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
234 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
235 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
236 g:imported_script = Export. exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
237 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
238 writefile(import_star_as_lines_script_space_after_dot, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
239 assert_fails('source Ximport.vim', 'E1074:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
240
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
241 var import_star_as_lines_missing_name =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
242 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
243 import './Xexport.vim' as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
244 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
245 var imported = Export.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
246 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
247 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
248 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
249 writefile(import_star_as_lines_missing_name, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
250 assert_fails('source Ximport.vim', 'E1048:', '', 1, 'Func')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
251
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
252 var import_star_as_lbr_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
253 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
254 import './Xexport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
255 as Export
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
256 def UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
257 g:exported = Export.exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
258 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
259 UseExport()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
260 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
261 writefile(import_star_as_lbr_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
262 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
263 assert_equal(18, g:exported)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
264 unlet g:exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
265
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
266 # try to use something that exists but is not exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
267 var import_not_exported_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
268 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
269 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
270 echo expo.name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
271 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
272 writefile(import_not_exported_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
273 assert_fails('source Ximport.vim', 'E1049:', '', 3, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
274
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
275 # try to import something that is already defined
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
276 var import_already_defined =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
277 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
278 var exported = 'something'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
279 import './Xexport.vim' as exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
280 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
281 writefile(import_already_defined, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
282 assert_fails('source Ximport.vim', 'E1054:', '', 3, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
283
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
284 # try changing an imported const
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
285 var import_assign_to_const =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
286 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
287 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
288 def Assign()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
289 expo.CONST = 987
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
290 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
291 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
292 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
293 writefile(import_assign_to_const, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
294 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
295
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
296 # try changing an imported final
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
297 var import_assign_to_final =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
298 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
299 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
300 def Assign()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
301 expo.theList = [2]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
302 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
303 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
304 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
305 writefile(import_assign_to_final, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
306 assert_fails('source Ximport.vim', 'E46:', '', 1, '_Assign')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
307
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
308 var import_no_as_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
309 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
310 import './Xexport.vim' name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
311 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
312 writefile(import_no_as_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
313 assert_fails('source Ximport.vim', 'E488:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
314
29006
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
315 # trailing starts with "as"
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
316 var import_bad_as_lines =<< trim END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
317 vim9script
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
318 import './Xexport.vim' asname
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
319 END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
320 writefile(import_no_as_lines, 'Ximport.vim')
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
321 assert_fails('source Ximport.vim', 'E488:', '', 2, 'Ximport.vim')
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
322
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
323 var import_invalid_string_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
324 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
325 import Xexport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
326 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
327 writefile(import_invalid_string_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
328 assert_fails('source Ximport.vim', 'E121:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
329
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
330 var import_wrong_name_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
331 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
332 import './XnoExport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
333 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
334 writefile(import_wrong_name_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
335 assert_fails('source Ximport.vim', 'E1053:', '', 2, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
336
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
337 var import_redefining_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
338 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
339 import './Xexport.vim' as exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
340 var exported = 5
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
341 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
342 writefile(import_redefining_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
343 assert_fails('source Ximport.vim', 'E1213: Redefining imported item "exported"', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
344
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
345 var import_missing_dot_lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
346 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
347 import './Xexport.vim' as expo
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
348 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
349 expo = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
350 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
351 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
352 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
353 writefile(import_missing_dot_lines, 'Ximport.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
354 assert_fails('source Ximport.vim', 'E1258:', '', 1)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
355
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
356 var import_missing_name_lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
357 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
358 import './Xexport.vim' as expo
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
359 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
360 expo.99 = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
361 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
362 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
363 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
364 writefile(import_missing_name_lines, 'Ximport.vim')
27059
e97cf16731d9 patch 8.2.4058: Vim9: import test failure in wrong line
Bram Moolenaar <Bram@vim.org>
parents: 27057
diff changeset
365 assert_fails('source Ximport.vim', 'E1259:', '', 1)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
366
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
367 var import_assign_wrong_type_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
368 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
369 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
370 expo.exported = 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
371 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
372 writefile(import_assign_wrong_type_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
373 assert_fails('source Ximport.vim', 'E1012: Type mismatch; expected number but got string', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
374
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
375 var import_assign_const_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
376 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
377 import './Xexport.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
378 expo.CONST = 4321
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
379 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
380 writefile(import_assign_const_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
381 assert_fails('source Ximport.vim', 'E46: Cannot change read-only variable "CONST"', '', 3)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
382
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
383 # Check that in a Vim9 script 'cpo' is set to the Vim default.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
384 # Flags added or removed are also applied to the restored value.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
385 set cpo=abcd
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
386 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
387 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
388 g:cpo_in_vim9script = &cpo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
389 set cpo+=f
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
390 set cpo-=c
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
391 g:cpo_after_vim9script = &cpo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
392 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
393 writefile(lines, 'Xvim9_script', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
394 source Xvim9_script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
395 assert_equal('fabd', &cpo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
396 set cpo&vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
397 assert_equal(&cpo, g:cpo_in_vim9script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
398 var newcpo = substitute(&cpo, 'c', '', '') .. 'f'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
399 assert_equal(newcpo, g:cpo_after_vim9script)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
400
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
401 delete('Xvim9_script')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
402 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
403
29006
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
404 def Test_import_very_long_name()
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
405 var lines =<< trim END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
406 vim9script
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
407
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
408 export var verylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongname = 'asdf'
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
409 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
410 writefile(lines, 'Xverylong.vim', 'D')
29006
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
411
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
412 lines =<< trim END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
413 vim9script
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
414 import './Xverylong.vim'
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
415
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
416 g:result = Xverylong.verylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongnameverylongname
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
417 END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
418 v9.CheckScriptSuccess(lines)
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
419 assert_equal('asdf', g:result)
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
420
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
421 unlet g:result
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
422 enddef
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
423
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
424 def Test_import_funcref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
425 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
426 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
427 export def F(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
428 return 42
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
429 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
430 export const G = F
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
431 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
432 writefile(lines, 'Xlib.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
433
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
434 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
435 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
436 import './Xlib.vim' as lib
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
437 const Foo = lib.G()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
438 assert_equal(42, Foo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
439
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
440 def DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
441 const Goo = lib.G()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
442 assert_equal(42, Goo)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
443 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
444 DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
445 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
446 v9.CheckScriptSuccess(lines)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
447 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
448
30705
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
449 def Test_export_closure()
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
450 # tests that the closure in block can be compiled, not the import part
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
451 var lines =<< trim END
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
452 vim9script
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
453 {
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
454 var foo = 42
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
455 export def Bar(): number
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
456 return foo
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
457 enddef
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
458 }
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
459 assert_equal(42, Bar())
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
460 END
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
461 v9.CheckScriptSuccess(lines)
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
462 enddef
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
463
27807
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
464 def Test_import_duplicate_function()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
465 # Function Hover() exists in both scripts, partial should refer to the right
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
466 # one.
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
467 var lines =<< trim END
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
468 vim9script
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
469
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
470 def Hover(d: dict<any>): string
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
471 return 'found it'
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
472 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
473
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
474 export def NewLspServer(): dict<any>
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
475 var d: dict<any> = {}
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
476 d->extend({hover: function('Hover', [d])})
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
477 return d
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
478 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
479
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
480 NewLspServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
481 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
482 writefile(lines, 'Xserver.vim', 'D')
27807
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
483
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
484 lines =<< trim END
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
485 vim9script
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
486
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
487 import './Xserver.vim' as server
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
488
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
489 export def Hover()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
490 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
491
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
492 def AddServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
493 var d: dict<any> = server.NewLspServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
494 assert_equal('found it', d.hover())
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
495 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
496 AddServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
497 END
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
498 v9.CheckScriptSuccess(lines)
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
499 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
500
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
501
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
502 def Test_import_fails()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
503 writefile([], 'Xfoo.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
504 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
505 import './Xfoo.vim' as foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
506 foo = 'bar'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
507 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
508 v9.CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use foo itself'])
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
509 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
510 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
511 import './Xfoo.vim' as foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
512 var that = foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
513 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
514 v9.CheckScriptFailure(lines, 'E1060: Expected dot after name: foo')
27277
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
515 lines =<< trim END
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
516 vim9script
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
517 import './Xfoo.vim' as foo
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
518 var that: any
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
519 that += foo
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
520 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
521 v9.CheckScriptFailure(lines, 'E1060: Expected dot after name: foo')
27277
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
522 lines =<< trim END
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
523 vim9script
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
524 import './Xfoo.vim' as foo
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
525 foo += 9
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
526 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
527 v9.CheckScriptFailure(lines, 'E1060: Expected dot after name: foo')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
528
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
529 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
530 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
531 import './Xfoo.vim' as 9foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
532 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
533 v9.CheckScriptFailure(lines, 'E1047:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
534 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
535 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
536 import './Xfoo.vim' as the#foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
537 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
538 v9.CheckScriptFailure(lines, 'E1047:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
539 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
540 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
541 import './Xfoo.vim' as g:foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
542 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
543 v9.CheckScriptFailure(lines, 'E1047:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
544
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
545 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
546 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
547 def TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
548 echo 'the func'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
549 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
550 export var Ref = TheFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
551 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
552 writefile([], 'Xthat.vim')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
553
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
554 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
555 import './Xthat.vim' as That
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
556 That()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
557 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
558 v9.CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself'])
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
559
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
560 lines =<< trim END
27233
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
561 vim9script
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
562 import './Xthat.vim' as That
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
563 def Func()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
564 echo That()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
565 enddef
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
566 Func()
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
567 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
568 v9.CheckScriptFailure(lines, 'E1236: Cannot use That itself')
27233
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
569
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
570 lines =<< trim END
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
571 import './Xthat.vim' as one
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
572 import './Xthat.vim' as two
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
573 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
574 v9.CheckScriptFailure(lines, 'E1262:')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
575
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
576 delete('Xthat.vim')
27607
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
577
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
578 lines =<< trim END
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
579 vim9script
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
580 export var item = 'hello'
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
581 import './Xyourself.vim'
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
582 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
583 writefile(lines, 'Xyourself.vim', 'D')
27607
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
584 assert_fails('source Xyourself.vim', 'E1088:')
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
585
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
586 mkdir('Ximport', 'R')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
587
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
588 writefile(['vim9script'], 'Ximport/.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
589 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
590 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
591 import './Ximport/.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
592 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
593 v9.CheckScriptFailure(lines, 'E1261: Cannot import .vim without using "as"')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
594 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
595 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
596 import './Ximport/.vim' as vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
597 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
598 v9.CheckScriptSuccess(lines)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
599
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
600 writefile(['vim9script'], 'Ximport/.vimrc')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
601 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
602 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
603 import './Ximport/.vimrc'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
604 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
605 v9.CheckScriptFailure(lines, 'E1257: Imported script must use "as" or end in .vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
606 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
607 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
608 import './Ximport/.vimrc' as vimrc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
609 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
610 v9.CheckScriptSuccess(lines)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
611
28570
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
612 new
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
613 setline(1, ['vim9script', 'import "" as abc'])
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
614 assert_fails('source', 'E1071: Invalid string for :import: "" as abc')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
615 setline(2, 'import [] as abc')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
616 assert_fails('source', 'E1071: Invalid string for :import: [] as abc')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
617 setline(2, 'import test_null_string() as abc')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
618 assert_fails('source', 'E1071: Invalid string for :import: test_null_string() as abc')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
619 bw!
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
620 call writefile(['vim9script', "import './Xfoo.vim' ask expo"], 'Xbar.vim')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
621 assert_fails('source Xbar.vim', 'E488: Trailing characters: ask expo')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
622 writefile([], 'Xtemp')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
623 call writefile(['vim9script', "import './Xtemp'"], 'Xbar.vim')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
624 assert_fails('source Xbar.vim', 'E1257: Imported script must use "as" or end in .vim: Xtemp')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
625 delete('Xtemp')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
626 call writefile(['vim9script', "import './Xfoo.vim' as abc | foobar"], 'Xbar.vim')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
627 assert_fails('source Xbar.vim', 'E492: Not an editor command: foobar')
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
628 call delete('Xbar.vim')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
629 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
630
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
631 func g:Trigger()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
632 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
633 return "echo 'yes'\<CR>"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
634 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
635
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
636 def Test_import_export_expr_map()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
637 # check that :import and :export work when buffer is locked
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
638 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
639 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
640 export def That(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
641 return 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
642 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
643 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
644 writefile(export_lines, 'Xexport_that.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
645
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
646 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
647 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
648 import './Xexport_that.vim' as that
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
649 assert_equal('yes', that.That())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
650 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
651 writefile(import_lines, 'Ximport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
652
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
653 nnoremap <expr> trigger g:Trigger()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
654 feedkeys('trigger', "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
655
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
656 nunmap trigger
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
657 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
658
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
659 def Test_import_in_filetype()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
660 # check that :import works when the buffer is locked
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
661 mkdir('ftplugin', 'pR')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
662 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
663 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
664 export var That = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
665 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
666 writefile(export_lines, 'ftplugin/Xexport_ft.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
667
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
668 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
669 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
670 import './Xexport_ft.vim' as ft
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
671 assert_equal('yes', ft.That)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
672 g:did_load_mytpe = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
673 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
674 writefile(import_lines, 'ftplugin/qf.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
675
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
676 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
677 &rtp = getcwd() .. ',' .. &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
679 filetype plugin on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
680 copen
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
681 assert_equal(1, g:did_load_mytpe)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
682
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
683 quit!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
684 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
685 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
686
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
687 def Test_use_import_in_mapping()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
688 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
689 vim9script
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
690 export def Funcx(nr: number)
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
691 g:result = nr
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
692 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
693 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
694 writefile(lines, 'XsomeExport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
695 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
696 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
697 import './XsomeExport.vim' as some
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
698 var Funcy = some.Funcx
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
699 nnoremap <F3> :call <sid>Funcy(42)<cr>
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
700 nnoremap <F4> :call <sid>some.Funcx(44)<cr>
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
701 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
702 writefile(lines, 'Xmapscript.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
703
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
704 source Xmapscript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
705 feedkeys("\<F3>", "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
706 assert_equal(42, g:result)
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
707 feedkeys("\<F4>", "xt")
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
708 assert_equal(44, g:result)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
709
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
710 unlet g:result
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
711 nunmap <F3>
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
712 nunmap <F4>
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
713 enddef
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
714
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
715 def Test_use_relative_autoload_import_in_mapping()
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
716 var lines =<< trim END
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
717 vim9script
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
718 export def Func()
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
719 g:result = 42
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
720 enddef
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
721 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
722 writefile(lines, 'XrelautoloadExport.vim', 'D')
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
723 lines =<< trim END
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
724 vim9script
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
725 import autoload './XrelautoloadExport.vim' as some
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
726 nnoremap <F3> :call <SID>some.Func()<CR>
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
727 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
728 writefile(lines, 'Xmapscript.vim', 'D')
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
729
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
730 source Xmapscript.vim
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
731 assert_match('\d\+ A: .*XrelautoloadExport.vim', execute('scriptnames')->split("\n")[-1])
29861
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
732 var l = getscriptinfo()
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
733 assert_match('XrelautoloadExport.vim$', l[-1].name)
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
734 assert_true(l[-1].autoload)
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
735 feedkeys("\<F3>", "xt")
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
736 assert_equal(42, g:result)
29861
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
737 l = getscriptinfo({name: 'XrelautoloadExport'})
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
738 assert_true(len(l) == 1)
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
739 assert_match('XrelautoloadExport.vim$', l[0].name)
8dca33bca038 patch 9.0.0269: getscriptinfo() does not include the version
Bram Moolenaar <Bram@vim.org>
parents: 29836
diff changeset
740 assert_false(l[0].autoload)
29930
cd573d7bc30d patch 9.0.0303: it is not easy to get information about a script
Bram Moolenaar <Bram@vim.org>
parents: 29861
diff changeset
741 assert_equal(999999, l[0].version)
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
742
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
743 unlet g:result
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
744 nunmap <F3>
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
745 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
746
29006
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
747 def Test_autoload_import_var()
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
748 # variable name starts with "autoload"
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
749 var lines =<< trim END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
750 vim9script
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
751 var autoloaded = "Xtest.vim"
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
752 import autoloaded
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
753 END
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
754 v9.CheckScriptFailure(lines, 'E1053: Could not import "Xtest.vim')
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
755 enddef
99a7eb1881c7 patch 8.2.5025: Vim9: a few lines not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 28594
diff changeset
756
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
757 def Test_use_autoload_import_in_mapping()
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
758 var lines =<< trim END
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
759 vim9script
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
760 export def Func()
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
761 g:result = 49
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
762 enddef
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
763 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
764 mkdir('Ximpdir/autoload', 'pR')
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
765 writefile(lines, 'Ximpdir/autoload/XautoloadExport.vim')
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
766 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
767 exe 'set rtp^=' .. getcwd() .. '/Ximpdir'
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
768
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
769 lines =<< trim END
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
770 vim9script
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
771 import autoload 'XautoloadExport.vim' as some
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
772 nnoremap <F3> :call <SID>some.Func()<CR>
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
773 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
774 writefile(lines, 'Xmapscript.vim', 'D')
28453
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
775
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
776 source Xmapscript.vim
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
777 assert_match('\d\+ A: .*autoload/XautoloadExport.vim', execute('scriptnames')->split("\n")[-1])
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
778 feedkeys("\<F3>", "xt")
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
779 assert_equal(49, g:result)
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
780
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
781 unlet g:result
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
782 nunmap <F3>
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
783 &rtp = save_rtp
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
784 enddef
862068e9e2a7 patch 8.2.4751: mapping <SID>name.Func does not work for autoload script
Bram Moolenaar <Bram@vim.org>
parents: 28447
diff changeset
785
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
786 def Test_use_import_in_command_completion()
27189
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
787 var lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
788 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
789 export def Complete(..._): list<string>
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
790 return ['abcd']
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
791 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
792 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
793 writefile(lines, 'Xscript.vim', 'D')
27189
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
794
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
795 lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
796 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
797 import './Xscript.vim'
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
798
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
799 command -nargs=1 -complete=customlist,Xscript.Complete Cmd echo 'ok'
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
800 feedkeys(":Cmd ab\<Tab>\<C-B>#\<CR>", 'xnt')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
801 assert_equal('#Cmd abcd', @:)
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
802 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
803 v9.CheckScriptSuccess(lines)
27189
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
804
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
805 delcommand Cmd
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
806 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
807
28461
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
808 def Test_use_import_with_funcref_in_command_completion()
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
809 var lines =<< trim END
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
810 vim9script
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
811 export def Complete(..._): list<string>
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
812 return ['abcd']
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
813 enddef
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
814 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
815 writefile(lines, 'Xscript.vim', 'D')
28461
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
816
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
817 lines =<< trim END
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
818 vim9script
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
819 import './Xscript.vim'
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
820
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
821 var Ref = Xscript.Complete
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
822 exe "command -nargs=1 -complete=customlist," .. expand('<SID>') .. "Ref Cmd echo 'ok'"
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
823 feedkeys(":Cmd ab\<Tab>\<C-B>#\<CR>", 'xnt')
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
824 assert_equal('#Cmd abcd', @:)
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
825 END
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
826 v9.CheckScriptSuccess(lines)
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
827
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
828 delcommand Cmd
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
829 enddef
938c174b8088 patch 8.2.4755: cannot use <SID>FuncRef in completion spec
Bram Moolenaar <Bram@vim.org>
parents: 28453
diff changeset
830
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
831 def Test_use_autoload_import_in_insert_completion()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
832 mkdir('Xinsdir/autoload', 'pR')
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
833 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
834 exe 'set rtp^=' .. getcwd() .. '/Xinsdir'
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
835
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
836 var lines =<< trim END
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
837 vim9script
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
838 export def ThesaurusFunc(findbase: bool, _): any
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
839 if findbase
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
840 return 1
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
841 endif
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
842 return [
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
843 'check',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
844 'experiment',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
845 'test',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
846 'verification'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
847 ]
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
848 enddef
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
849 g:completion_loaded = 'yes'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
850 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
851 writefile(lines, 'Xinsdir/autoload/completion.vim')
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
852
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
853 new
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
854 lines =<< trim END
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
855 vim9script
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
856 g:completion_loaded = 'no'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
857 import autoload 'completion.vim'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
858 set thesaurusfunc=completion.ThesaurusFunc
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
859 assert_equal('no', g:completion_loaded)
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
860 feedkeys("i\<C-X>\<C-T>\<C-N>\<Esc>", 'xt')
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
861 assert_equal('experiment', getline(1))
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
862 assert_equal('yes', g:completion_loaded)
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
863 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
864 v9.CheckScriptSuccess(lines)
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
865
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
866 set thesaurusfunc=
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
867 bwipe!
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
868 &rtp = save_rtp
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
869 enddef
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
870
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
871 def Test_use_autoload_import_partial_in_opfunc()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
872 mkdir('Xpartdir/autoload', 'pR')
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
873 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
874 exe 'set rtp^=' .. getcwd() .. '/Xpartdir'
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
875
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
876 var lines =<< trim END
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
877 vim9script
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
878 export def Opfunc1(..._)
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
879 g:opfunc_called = 'yes'
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
880 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
881 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
882 writefile(lines, 'Xpartdir/autoload/opfunc.vim')
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
883
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
884 new
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
885 lines =<< trim END
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
886 vim9script
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
887 import autoload 'opfunc.vim'
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
888 nnoremap <expr> <F3> TheFunc()
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
889 def TheFunc(): string
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
890 &operatorfunc = function('opfunc.Opfunc1', [0])
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
891 return 'g@'
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
892 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
893 feedkeys("\<F3>l", 'xt')
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
894 assert_equal('yes', g:opfunc_called)
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
895 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
896 v9.CheckScriptSuccess(lines)
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
897
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
898 set opfunc=
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
899 bwipe!
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
900 nunmap <F3>
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
901 &rtp = save_rtp
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
902 enddef
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
903
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
904 def Test_set_opfunc_to_autoload_func_directly()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
905 mkdir('Xdirdir/autoload', 'pR')
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
906 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
907 exe 'set rtp^=' .. getcwd() .. '/Xdirdir'
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
908
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
909 var lines =<< trim END
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
910 vim9script
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
911 export def Opfunc2(..._)
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
912 g:opfunc_called = 'yes'
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
913 enddef
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
914 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
915 writefile(lines, 'Xdirdir/autoload/opfunc.vim')
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
916
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
917 new
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
918 lines =<< trim END
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
919 vim9script
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
920 import autoload 'opfunc.vim'
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
921 nnoremap <expr> <F3> TheFunc()
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
922 def TheFunc(): string
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
923 &operatorfunc = opfunc.Opfunc2
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
924 return 'g@'
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
925 enddef
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
926 feedkeys("\<F3>l", 'xt')
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
927 assert_equal('yes', g:opfunc_called)
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
928 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
929 v9.CheckScriptSuccess(lines)
27376
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
930
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
931 set opfunc=
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
932 bwipe!
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
933 nunmap <F3>
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
934 &rtp = save_rtp
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
935 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
936
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
937 def Test_use_autoload_import_in_fold_expression()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
938 mkdir('Xfolddir/autoload', 'pR')
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
939 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
940 exe 'set rtp^=' .. getcwd() .. '/Xfolddir'
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
941
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
942 var lines =<< trim END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
943 vim9script
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
944 export def Expr(): string
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
945 return getline(v:lnum) =~ '^#' ? '>1' : '1'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
946 enddef
27301
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
947 export def Text(): string
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
948 return 'fold text'
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
949 enddef
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
950 g:fold_loaded = 'yes'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
951 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
952 writefile(lines, 'Xfolddir/autoload/fold.vim')
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
953
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
954 lines =<< trim END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
955 vim9script
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
956 import autoload 'fold.vim'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
957 &foldexpr = 'fold.Expr()'
27301
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
958 &foldtext = 'fold.Text()'
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
959 &foldmethod = 'expr'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
960 &debug = 'throw'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
961 END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
962 new
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
963 setline(1, ['# one', 'text', '# two', 'text'])
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
964 g:fold_loaded = 'no'
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
965 v9.CheckScriptSuccess(lines)
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
966 assert_equal('no', g:fold_loaded)
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
967 redraw
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
968 assert_equal('yes', g:fold_loaded)
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
969
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
970 # Check that script context of 'foldexpr' is copied to another buffer.
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
971 edit! otherfile
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
972 redraw
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
973
27301
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
974 set foldexpr= foldtext& foldmethod& debug=
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
975 bwipe!
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
976 &rtp = save_rtp
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
977 enddef
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
978
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
979 def Test_autoload_import_relative()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
980 var lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
981 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
982
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
983 g:loaded = 'yes'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
984 export def RelFunc(): string
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
985 return 'relfunc'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
986 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
987 def NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
988 echo 'not'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
989 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
990
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
991 export var someText = 'some text'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
992 var notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
993 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
994 writefile(lines, 'XimportRel.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
995 writefile(lines, 'XimportRel2.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
996 writefile(lines, 'XimportRel3.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
997 writefile(lines, 'XimportRel4.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
998 writefile(lines, 'XimportRel5.vim', 'D')
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
999
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1000 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1001 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1002 g:loaded = 'no'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1003 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1004 assert_equal('no', g:loaded)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1005
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1006 def AFunc(): string
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1007 var res = ''
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1008 res ..= XimportRel.RelFunc()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1009 res ..= '/'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1010 res ..= XimportRel.someText
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1011 XimportRel.someText = 'from AFunc'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1012 return res
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1013 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1014 # script not loaded when compiling
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1015 defcompile
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1016 assert_equal('no', g:loaded)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1017
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1018 assert_equal('relfunc/some text', AFunc())
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1019 assert_equal('yes', g:loaded)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1020 unlet g:loaded
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1021
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1022 assert_equal('from AFunc', XimportRel.someText)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1023 XimportRel.someText = 'from script'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1024 assert_equal('from script', XimportRel.someText)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1025 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1026 v9.CheckScriptSuccess(lines)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1027
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1028 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1029 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1030 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1031 echo XimportRel.NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1032 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1033 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExported', 3)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1034
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1035 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1036 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1037 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1038 echo XimportRel.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1039 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1040 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 3)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1041
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1042 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1043 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1044 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1045 XimportRel.notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1046 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1047 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 3)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1048
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1049 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1050 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1051 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1052 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1053 echo XimportRel.NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1054 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1055 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1056 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1057 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExported', 1)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1058
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1059 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1060 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1061 import autoload './XimportRel.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1062 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1063 echo XimportRel.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1064 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1065 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1066 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1067 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1068
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1069 # Same, script not imported before
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1070 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1071 vim9script
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1072 import autoload './XimportRel4.vim'
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1073 def Func()
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1074 echo XimportRel4.notexp
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1075 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1076 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1077 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1078 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1079
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1080 # does not fail if the script wasn't loaded yet and only compiling
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1081 g:loaded = 'no'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1082 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1083 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1084 import autoload './XimportRel2.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1085 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1086 echo XimportRel2.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1087 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1088 defcompile
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1089 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1090 v9.CheckScriptSuccess(lines)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1091 assert_equal('no', g:loaded)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1092
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1093 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1094 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1095 import autoload './XimportRel.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1096 def Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1097 XimportRel.notexp = 'bad'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1098 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1099 Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1100 END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1101 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1102
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1103 # fails with a not loaded import
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1104 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1105 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1106 import autoload './XimportRel3.vim'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1107 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1108 XimportRel3.notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1109 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1110 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1111 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1112 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1113 assert_equal('yes', g:loaded)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1114 unlet g:loaded
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1115
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1116 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1117 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1118 import autoload './XimportRel5.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1119 def Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1120 XimportRel5.nosuchvar = 'bad'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1121 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1122 Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1123 END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1124 v9.CheckScriptFailure(lines, 'E121: Undefined variable: nosuchvar', 1)
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1125 unlet g:loaded
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1126
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1127 # nasty: delete script after compiling function
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1128 writefile(['vim9script'], 'XimportRelDel.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1129 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1130 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1131
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1132 import autoload './XimportRelDel.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1133 def DoIt()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1134 echo XimportRelDel.var
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1135 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1136 defcompile
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1137 delete('XimportRelDel.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1138 DoIt()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1139 END
28309
62689b6765d6 patch 8.2.4680: build failure without +postscript
Bram Moolenaar <Bram@vim.org>
parents: 28305
diff changeset
1140 v9.CheckScriptFailure(lines, 'E484:')
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1141 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1142
35012
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1143 " autoload relative, access from compiled function.
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1144 " Github issues: #14565, #14579
34995
7d167edb4c3d patch 9.1.0353: tests: Test_autoload_import_relative_compiled fails on Windows
Christian Brabandt <cb@256bit.org>
parents: 34981
diff changeset
1145 def Test_autoload_import_relative_compiled_buffer()
34981
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1146 var lines =<< trim END
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1147 vim9script
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1148
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1149 export def F1(): string
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1150 return 'InFile.vim'
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1151 enddef
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1152 END
34995
7d167edb4c3d patch 9.1.0353: tests: Test_autoload_import_relative_compiled fails on Windows
Christian Brabandt <cb@256bit.org>
parents: 34981
diff changeset
1153 writefile(lines, 'Ximportrelativebuffer.vim', 'D')
34981
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1154 lines =<< trim END
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1155 vim9script
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1156
34995
7d167edb4c3d patch 9.1.0353: tests: Test_autoload_import_relative_compiled fails on Windows
Christian Brabandt <cb@256bit.org>
parents: 34981
diff changeset
1157 import autoload './Ximportrelativebuffer.vim' as xfile
34981
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1158
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1159 def F(): string
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1160 return xfile.F1()
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1161 enddef
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1162 assert_equal('InFile.vim', F())
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1163 END
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1164 new
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1165 setline(1, lines)
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1166 :source
35012
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1167 # source one more time to detect issues with clearing the script state and
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1168 # variables
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1169 :source
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1170 :bw!
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1171 enddef
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1172
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1173 " Test for relative import when sourcing a buffer in another directory
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1174 def Test_autoload_import_relative_from_buffer_in_dir()
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1175 mkdir('Ximportrelative/dir1/dir2', 'pR')
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1176 var lines =<< trim END
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1177 vim9script
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1178
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1179 export def F1(): string
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1180 return 'InFile.vim'
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1181 enddef
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1182 END
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1183 writefile(lines, 'Ximportrelative/dir1/dir2/Ximport.vim')
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1184 lines =<< trim END
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1185 vim9script
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1186
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1187 import autoload './Ximport.vim' as xfile
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1188
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1189 def F(): string
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1190 return xfile.F1()
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1191 enddef
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1192 assert_equal('InFile.vim', F())
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1193 END
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1194 writefile(lines, 'Ximportrelative/dir1/dir2/Xrelative.vim')
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1195
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1196 split Ximportrelative/dir1/dir2/Xrelative.vim
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1197 :source
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1198 # source one more time to detect issues with clearing the script state and
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1199 # variables
890b693189b0 patch 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
Christian Brabandt <cb@256bit.org>
parents: 34995
diff changeset
1200 :source
34995
7d167edb4c3d patch 9.1.0353: tests: Test_autoload_import_relative_compiled fails on Windows
Christian Brabandt <cb@256bit.org>
parents: 34981
diff changeset
1201 :bw!
34981
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1202 enddef
76e3b9d514a8 patch 9.1.0346: Patch v9.1.0338 fixed sourcing a script with import
Christian Brabandt <cb@256bit.org>
parents: 34965
diff changeset
1203
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1204 " Test modifying exported autoload variable. Github issue: #14591
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1205 def Test_autoload_export_variables()
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1206 mkdir('Xautoload_vars/autoload', 'pR')
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1207 var lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1208 vim9script
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1209 g:Xautoload_vars_autoload = true
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1210 export var val = 11
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1211 val = 42
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1212 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1213
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1214 # Test that the imported script, above, can modify the exported variable;
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1215 # and test that the importing script, below, can modify the variable.
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1216 writefile(lines, 'Xautoload_vars/autoload/Xauto_vars_f2.vim', 'D')
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1217 lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1218 vim9script
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1219 g:Xautoload_vars_autoload = false
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1220
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1221 import autoload './Xautoload_vars/autoload/Xauto_vars_f2.vim' as f2
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1222 # Verify that the import statement does not load the file.
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1223 assert_equal(false, g:Xautoload_vars_autoload)
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1224
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1225 def F(): number
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1226 return f2.val
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1227 enddef
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1228 # Verify compile does not load the file.
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1229 defcompile F
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1230 assert_equal(false, g:Xautoload_vars_autoload)
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1231
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1232 # load the file by accessing the exported variable
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1233 assert_equal(42, F())
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1234 assert_equal(true, g:Xautoload_vars_autoload)
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1235 unlet g:Xautoload_vars_autoload
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1236
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1237 assert_equal(42, f2.val)
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1238 f2.val = 17
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1239 assert_equal(17, f2.val)
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1240
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1241 def G()
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1242 f2.val = 19
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1243 enddef
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1244 G()
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1245 assert_equal(19, f2.val)
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1246 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1247 v9.CheckScriptSuccess(lines)
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1248
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1249 # Test const var is not modifiable.
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1250 lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1251 vim9script
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1252 export const val = 11
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1253 val = 42
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1254 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1255 writefile(lines, 'Xautoload_vars/autoload/Xauto_vars_f3.vim', 'D')
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1256 lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1257 vim9script
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1258
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1259 import autoload './Xautoload_vars/autoload/Xauto_vars_f3.vim' as f3
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1260
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1261 var x = f3.val
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1262 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1263 v9.CheckScriptFailure(lines, 'E46:')
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1264
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1265 # Test const var is not modifiable from importing script.
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1266 lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1267 vim9script
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1268 export const val = 11
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1269 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1270 writefile(lines, 'Xautoload_vars/autoload/Xauto_vars_f4.vim', 'D')
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1271 lines =<< trim END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1272 vim9script
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1273
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1274 import autoload './Xautoload_vars/autoload/Xauto_vars_f4.vim' as f4
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1275
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1276 f4.val = 13
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1277 END
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1278 v9.CheckScriptFailure(lines, 'E46:')
35037
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1279
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1280 # Test const var is not modifiable from importing script from :def.
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1281 # Github issue: #14606
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1282 lines =<< trim END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1283 vim9script
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1284 export const val = 11
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1285 END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1286 writefile(lines, 'Xautoload_vars/autoload/Xauto_vars_f5.vim', 'D')
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1287 lines =<< trim END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1288 vim9script
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1289
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1290 import autoload './Xautoload_vars/autoload/Xauto_vars_f5.vim' as f5
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1291
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1292 def F()
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1293 f5.val = 13
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1294 enddef
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1295 F()
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1296 END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1297 v9.CheckScriptFailure(lines, 'E741:')
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1298
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1299 # Still part of Github issue: #14606
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1300 lines =<< trim END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1301 vim9script
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1302 export var val = 11
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1303 END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1304 writefile(lines, 'Xautoload_vars/autoload/Xauto_vars_f6.vim', 'D')
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1305 lines =<< trim END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1306 vim9script
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1307
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1308 import autoload './Xautoload_vars/autoload/Xauto_vars_f6.vim' as f6
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1309
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1310 def F()
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1311 f6.val = 13
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1312 enddef
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1313 F()
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1314 assert_equal(13, f6.val)
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1315 END
5df4ad0a5200 patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Christian Brabandt <cb@256bit.org>
parents: 35015
diff changeset
1316 v9.CheckScriptSuccess(lines)
35015
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1317 enddef
97d3b04002f7 patch 9.1.0360: Vim9: does not handle autoloaded variables well
Christian Brabandt <cb@256bit.org>
parents: 35012
diff changeset
1318
28261
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1319 def Test_autoload_import_relative_autoload_dir()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1320 mkdir('autoload', 'pR')
28261
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1321 var lines =<< trim END
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1322 vim9script
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1323 export def Bar()
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1324 g:called_bar = 'yes'
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1325 enddef
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1326 END
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1327 writefile(lines, 'autoload/script.vim')
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1328
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1329 lines =<< trim END
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1330 vim9script
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1331 import autoload './autoload/script.vim'
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1332 def Foo()
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1333 script.Bar()
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1334 enddef
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1335 Foo()
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1336 assert_equal('yes', g:called_bar)
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1337 END
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1338 v9.CheckScriptSuccess(lines)
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1339
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1340 unlet g:called_bar
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1341 enddef
20f6b0cdf38c patch 8.2.4656: Vim9: can't use item from "import autoload" with autoload dir
Bram Moolenaar <Bram@vim.org>
parents: 28255
diff changeset
1342
28594
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1343 def Test_autoload_import_deleted()
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1344 var lines =<< trim END
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1345 vim9script
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1346 export const FOO = 1
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1347 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1348 writefile(lines, 'Xa.vim', 'D')
28594
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1349
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1350 lines =<< trim END
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1351 vim9script
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1352 import autoload './Xa.vim'
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1353
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1354 delete('Xa.vim')
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1355 var x = Xa.FOO
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1356 END
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1357 v9.CheckScriptFailure(lines, 'E484:')
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1358 enddef
294771aab3ae patch 8.2.4821: crash when imported autoload script was deleted
Bram Moolenaar <Bram@vim.org>
parents: 28570
diff changeset
1359
30819
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1360 def Test_autoload_import_using_const()
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1361 mkdir('Xdir/autoload', 'pR')
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1362 var lines =<< trim END
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1363 vim9script
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1364 export const FOO = 42
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1365 echomsg FOO
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1366 END
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1367 writefile(lines, 'Xdir/autoload/exp.vim')
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1368
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1369 var save_rtp = &rtp
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1370 exe 'set rtp^=' .. getcwd() .. '/Xdir'
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1371 lines =<< trim END
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1372 vim9script
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1373 import autoload 'exp.vim'
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1374 assert_equal(42, exp.FOO)
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1375 END
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1376 v9.CheckScriptSuccess(lines)
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1377 &rtp = save_rtp
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1378 enddef
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
1379
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1380 func Test_import_in_diffexpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1381 CheckExecutable diff
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1382
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1383 call Run_Test_import_in_diffexpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1384 endfunc
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1385
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1386 def Run_Test_import_in_diffexpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1387 var lines =<< trim END
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1388 vim9script
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1389
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1390 export def DiffExpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1391 # Prepend some text to check diff type detection
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1392 writefile(['warning', ' message'], v:fname_out)
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1393 silent exe '!diff ' .. v:fname_in .. ' '
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1394 .. v:fname_new .. '>>' .. v:fname_out
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1395 enddef
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1396 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1397 writefile(lines, 'Xdiffexpr', 'D')
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1398
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1399 lines =<< trim END
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1400 vim9script
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1401 import './Xdiffexpr' as diff
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1402
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1403 set diffexpr=diff.DiffExpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1404 set diffopt=foldcolumn:0
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1405 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1406 v9.CheckScriptSuccess(lines)
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1407
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1408 enew!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1409 call setline(1, ['one', 'two', 'three'])
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1410 diffthis
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1411
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1412 botright vert new
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1413 call setline(1, ['one', 'two', 'three.'])
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1414 diffthis
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1415 # we only check if this does not cause errors
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1416 redraw
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1417
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1418 diffoff!
29297
8890460143c9 patch 8.2.5165: import test fails because 'diffexpr' isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 29006
diff changeset
1419 set diffexpr=
8890460143c9 patch 8.2.5165: import test fails because 'diffexpr' isn't reset
Bram Moolenaar <Bram@vim.org>
parents: 29006
diff changeset
1420 set diffopt&
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1421 bwipe!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1422 bwipe!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1423 enddef
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1424
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1425 def Test_import_in_patchexpr()
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1426 var lines =<< trim END
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1427 vim9script
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1428 export def TPatch()
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1429 call writefile(['output file'], v:fname_out)
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1430 enddef
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1431 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1432 writefile(lines, 'Xpatchexpr', 'D')
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1433
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1434 lines =<< trim END
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1435 vim9script
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1436 import './Xpatchexpr' as patch
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1437 set patchexpr=patch.TPatch()
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1438 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1439 v9.CheckScriptSuccess(lines)
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1440
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1441 call writefile(['input file'], 'Xinput', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1442 call writefile(['diff file'], 'Xdiff', 'D')
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1443 :%bwipe!
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1444 edit Xinput
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1445 diffpatch Xdiff
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1446 call assert_equal('output file', getline(1))
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1447
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1448 set patchexpr&
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1449 :%bwipe!
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1450 enddef
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1451
27309
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1452 def Test_import_in_formatexpr()
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1453 var lines =<< trim END
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1454 vim9script
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1455 export def MyFormatExpr(): number
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1456 g:did_format = 'yes'
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1457 return 0
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1458 enddef
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1459 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1460 writefile(lines, 'Xformatter', 'D')
27309
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1461
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1462 lines =<< trim END
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1463 vim9script
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1464 import './Xformatter' as format
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1465 set formatexpr=format.MyFormatExpr()
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1466 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1467 v9.CheckScriptSuccess(lines)
27309
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1468
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1469 new
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1470 setline(1, ['a', 'b', 'c'])
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1471 normal gqG
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1472 assert_equal('yes', g:did_format)
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1473
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1474 bwipe!
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1475 unlet g:did_format
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1476 set formatexpr=
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1477 enddef
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1478
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1479 def Test_import_in_includeexpr()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1480 writefile(['found it'], 'Xthisfile', 'D')
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1481 new
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1482
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1483 var lines =<< trim END
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1484 vim9script
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1485 export def DoSub(): string
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1486 return substitute(v:fname, 'that', 'this', '')
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1487 enddef
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1488 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1489 writefile(lines, 'Xinclude.vim', 'D')
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1490
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1491 lines =<< trim END
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1492 vim9script
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1493 import './Xinclude.vim'
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1494 set includeexpr=Xinclude.DoSub()
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1495 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1496 v9.CheckScriptSuccess(lines)
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1497
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1498 setline(1, ['Xthatfile'])
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1499 exe "normal \<C-W>f"
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1500 assert_equal('Xthisfile', expand('%'))
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1501
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1502 bwipe!
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1503 bwipe!
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1504 set includeexpr=
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1505 enddef
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1506
27313
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1507 def Test_import_in_indentexpr()
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1508 var lines =<< trim END
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1509 vim9script
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1510 export def GetIndent(): number
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1511 return 5
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1512 enddef
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1513 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1514 writefile(lines, 'Xindenter', 'D')
27313
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1515
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1516 lines =<< trim END
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1517 vim9script
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1518 import './Xindenter' as indent
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1519 set indentexpr=indent.GetIndent()
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1520 set debug=throw
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1521 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1522 v9.CheckScriptSuccess(lines)
27313
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1523
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1524 new
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1525 setline(1, 'hello')
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1526 normal ==
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1527 assert_equal(' hello', getline(1))
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1528
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1529 bwipe!
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1530 set indentexpr= debug=
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1531 enddef
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1532
27328
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1533 func Test_import_in_printexpr()
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1534 CheckFeature postscript
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1535 call Run_Test_import_in_printexpr()
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1536 endfunc
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1537
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1538 def Run_Test_import_in_printexpr()
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1539 var lines =<< trim END
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1540 vim9script
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1541 export def PrintFile(): bool
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1542 g:printed = 'yes'
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1543 delete('v:fname_in')
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1544 return false
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1545 enddef
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1546 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1547 writefile(lines, 'Xprint.vim', 'D')
27328
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1548
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1549 lines =<< trim END
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1550 vim9script
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1551 import './Xprint.vim'
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1552 set printexpr=Xprint.PrintFile()
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1553 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1554 v9.CheckScriptSuccess(lines)
27328
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1555
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1556 help
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1557 hardcopy dummy args
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1558 assert_equal('yes', g:printed)
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1559
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1560 set printexpr=
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1561 enddef
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1562
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1563 def Test_import_in_charconvert()
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1564 var lines =<< trim END
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1565 vim9script
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1566 export def MakeUpper(): bool
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1567 var data = readfile(v:fname_in)
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1568 map(data, 'toupper(v:val)')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1569 writefile(data, v:fname_out)
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1570 return false # success
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1571 enddef
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1572 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1573 writefile(lines, 'Xconvert.vim', 'D')
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1574
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1575 lines =<< trim END
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1576 vim9script
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1577 import './Xconvert.vim' as conv
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1578 set charconvert=conv.MakeUpper()
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1579 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1580 v9.CheckScriptSuccess(lines)
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1581
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1582 writefile(['one', 'two'], 'Xiicfile', 'D')
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29970
diff changeset
1583 new Xiicfile
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29970
diff changeset
1584 write ++enc=ucase Xiicfile1
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29970
diff changeset
1585 assert_equal(['ONE', 'TWO'], readfile('Xiicfile1'))
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29970
diff changeset
1586
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29970
diff changeset
1587 delete('Xiicfile1')
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1588 bwipe!
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1589 set charconvert&
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1590 enddef
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1591
27338
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1592 func Test_import_in_spellsuggest_expr()
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1593 CheckFeature spell
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1594 call Run_Test_import_in_spellsuggest_expr()
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1595 endfunc
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1596
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1597 def Run_Test_import_in_spellsuggest_expr()
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1598 var lines =<< trim END
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1599 vim9script
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1600 export def MySuggest(): list<any>
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1601 return [['Fox', 8], ['Fop', 9]]
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1602 enddef
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1603 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1604 writefile(lines, 'Xsuggest.vim', 'D')
27338
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1605
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1606 lines =<< trim END
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1607 vim9script
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1608 import './Xsuggest.vim' as sugg
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1609 set spell spellsuggest=expr:sugg.MySuggest()
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1610 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1611 v9.CheckScriptSuccess(lines)
27338
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1612
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1613 set verbose=1 # report errors
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1614 call assert_equal(['Fox', 'Fop'], spellsuggest('Fo', 2))
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1615
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1616 set nospell spellsuggest& verbose=0
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1617 enddef
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1618
30057
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1619 def Test_import_in_lambda_method()
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1620 var lines =<< trim END
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1621 vim9script
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1622 export def Retarg(e: any): any
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1623 return e
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1624 enddef
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1625 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1626 writefile(lines, 'XexportRetarg.vim', 'D')
30057
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1627 lines =<< trim END
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1628 vim9script
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1629 import './XexportRetarg.vim'
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1630 def Lambda(): string
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1631 var F = (x) => x->XexportRetarg.Retarg()
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1632 return F('arg')
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1633 enddef
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1634 assert_equal('arg', Lambda())
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1635 END
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1636 v9.CheckScriptSuccess(lines)
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1637 enddef
9c141768fa0f patch 9.0.0366: cannot use import->Func() in lambda
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1638
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1639 def Test_export_shadows_global_function()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1640 mkdir('Xglobdir/autoload', 'pR')
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1641 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
1642 exe 'set rtp^=' .. getcwd() .. '/Xglobdir'
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1643
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1644 var lines =<< trim END
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1645 vim9script
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1646 export def Shadow(): string
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1647 return 'Shadow()'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1648 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1649 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
1650 writefile(lines, 'Xglobdir/autoload/shadow.vim')
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1651
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1652 lines =<< trim END
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1653 vim9script
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1654
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1655 def g:Shadow(): string
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1656 return 'global'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1657 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1658
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1659 import autoload 'shadow.vim'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1660 assert_equal('Shadow()', shadow.Shadow())
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1661 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1662 v9.CheckScriptSuccess(lines)
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1663
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1664 delfunc g:Shadow
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1665 bwipe!
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1666 &rtp = save_rtp
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1667 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1668
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1669 def Test_export_fails()
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1670 v9.CheckScriptFailure(['export var some = 123'], 'E1042:')
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1671 v9.CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1672 v9.CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
28570
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
1673 v9.CheckScriptFailure(['vim9script', 'export function /a1b2c3'], 'E1044:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1674
30705
12e6c7bae2a9 patch 9.0.0687: "export def" does not work in a nested block
Bram Moolenaar <Bram@vim.org>
parents: 30057
diff changeset
1675 assert_fails('export echo 1', 'E1043:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1676 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1677
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1678 func Test_import_fails_without_script()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1679 CheckRunVimInTerminal
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1680
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1681 " call indirectly to avoid compilation error for missing functions
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1682 call Run_Test_import_fails_on_command_line()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1683 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1684
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1685 def Run_Test_import_fails_on_command_line()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1686 var export =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1687 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1688 export def Foo(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1689 return 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1690 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1691 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1692 writefile(export, 'XexportCmd.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1693
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1694 var buf = g:RunVimInTerminal('-c "import Foo from ''./XexportCmd.vim''"', {
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1695 rows: 6, wait_for_ruler: 0})
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1696 g:WaitForAssert(() => assert_match('^E1094:', term_getline(buf, 5)))
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1697
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1698 g:StopVimInTerminal(buf)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1699 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1700
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1701 def Test_vim9_reload_noclear()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1702 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1703 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1704 export var exported = 'thexport'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1705
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1706 export def TheFunc(x = 0)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1707 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1708 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1709 writefile(lines, 'XExportReload', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1710 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1711 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1712 g:loadCount += 1
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1713 var reloaded = 'init'
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1714 import './XExportReload' as exp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1715
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1716 def Again(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1717 return 'again'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1718 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1719
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1720 exp.TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1721
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1722 if exists('loaded') | finish | endif
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1723 var loaded = true
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1724
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1725 var notReloaded = 'yes'
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1726 reloaded = 'first'
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1727 def g:Values(): list<string>
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1728 return [reloaded, notReloaded, Again(), Once(), exp.exported]
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1729 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1730
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1731 def Once(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1732 return 'once'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1733 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1734 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1735 writefile(lines, 'XReloaded', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1736 g:loadCount = 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1737 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1738 assert_equal(1, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1739 assert_equal(['first', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1740 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1741 assert_equal(2, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1742 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1743 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1744 assert_equal(3, g:loadCount)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1745 assert_equal(['init', 'yes', 'again', 'once', 'thexport'], g:Values())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1746
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1747 delfunc g:Values
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1748 unlet g:loadCount
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1749
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1750 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1751 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1752 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1753 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1754 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1755 lines->writefile('XreloadScript.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1756 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1757
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1758 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1759 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1760 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1761 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1762 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1763 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1764 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1765 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1766 lines->writefile('XreloadScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1767 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1768 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1769
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1770 def Test_vim_reload_noclear_arg_count()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1771 var lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1772 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1773
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1774 if !exists('g:didload')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1775 def Test(a: string, b: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1776 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1777 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1778 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1779 Test('a', 'b')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1780 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1781 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1782 # redefine with one argument less
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1783 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1784 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1785 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1786 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1787 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1788 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1789 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1790 lines->writefile('XreloadScript_1.vim', 'D')
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1791 source XreloadScript_1.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1792 assert_fails('source XreloadScript_1.vim', 'E1106: One argument too many')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1793 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1794
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1795 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1796 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1797
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1798 if !exists('g:didload')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1799 def Test(a: string, b: string, c: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1800 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1801 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1802 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1803 Test('a', 'b', 'c')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1804 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1805 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1806 # redefine with one argument less
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1807 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1808 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1809 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1810 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1811 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1812 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1813 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1814 lines->writefile('XreloadScript_2.vim', 'D')
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1815 source XreloadScript_2.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1816 assert_fails('source XreloadScript_2.vim', 'E1106: 2 arguments too many')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1817 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1818
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1819 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1820 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1821
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1822 if !exists('g:didload')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1823 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1824 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1825 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1826 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1827 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1828 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1829 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1830 # redefine with one argument extra
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1831 def Test(a: string, b: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1832 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1833 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1834 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1835 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1836 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1837 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1838 lines->writefile('XreloadScript_3.vim', 'D')
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1839 source XreloadScript_3.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1840 assert_fails('source XreloadScript_3.vim', 'E1190: One argument too few')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1841 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1842
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1843 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1844 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1845
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1846 if !exists('g:didload')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1847 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1848 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1849 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1850 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1851 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1852 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1853 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1854 # redefine with two arguments extra
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1855 def Test(a: string, b: string, c: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1856 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1857 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1858 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1859 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1860 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1861 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1862 lines->writefile('XreloadScript_4.vim', 'D')
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1863 source XreloadScript_4.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1864 assert_fails('source XreloadScript_4.vim', 'E1190: 2 arguments too few')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1865 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1866 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1867
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1868 def Test_vim9_reload_noclear_error()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1869 var lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1870 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1871
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1872 if !exists('g:didload')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1873 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1874 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1875 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1876 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1877 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1878 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1879 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1880 # redefine with a compile error
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1881 def Test(a: string)
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1882 echo ax
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1883 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1884 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1885 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1886 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1887 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1888 lines->writefile('XreloadScriptErr.vim', 'D')
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1889 source XreloadScriptErr.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1890 assert_fails('source XreloadScriptErr.vim', 'E1001: Variable not found: ax')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1891
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1892 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1893 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1894
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1895 def Test_vim9_reload_import()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1896 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1897 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1898 const var = ''
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1899 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1900 def MyFunc(arg: string)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1901 valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1902 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1903 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1904 var morelines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1905 var valtwo = 222
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1906 export def GetValtwo(): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1907 return valtwo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1908 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1909 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1910 writefile(lines + morelines, 'Xreload.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1911 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1912 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1913 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1914
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1915 # cannot declare a var twice
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1916 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1917 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1918 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1919 var valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1920 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1921 writefile(lines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1922 assert_fails('source Xreload.vim', 'E1041:', '', 3, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1923
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1924 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1925 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1926
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1927 " if a script is reloaded with a script-local variable that changed its type, a
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1928 " compiled function using that variable must fail.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1929 def Test_script_reload_change_type()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1930 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1931 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1932 var str = 'string'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1933 def g:GetStr(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1934 return str .. 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1935 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1936 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1937 writefile(lines, 'Xreload.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1938 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1939 echo g:GetStr()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1940
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1941 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1942 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1943 var str = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1944 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1945 writefile(lines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1946 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1947 assert_fails('echo g:GetStr()', 'E1150:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1948
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1949 delfunc g:GetStr
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1950 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1951
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1952 " Define CallFunc so that the test can be compiled
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1953 command CallFunc echo 'nop'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1954
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1955 def Test_script_reload_from_function()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1956 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1957 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1958
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1959 if exists('g:loadedThis')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1960 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1961 endif
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1962 g:loadedThis = 1
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1963 delcommand CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1964 command CallFunc Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1965 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1966 so XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1967 g:didTheFunc = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1968 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1969 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
1970 writefile(lines, 'XreloadFunc.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1971 source XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1972 CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1973 assert_equal(1, g:didTheFunc)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1974
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1975 delcommand CallFunc
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1976 unlet g:loadedThis
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1977 unlet g:didTheFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1978 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1979
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1980 def s:RetSome(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1981 return 'some'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1982 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1983
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1984 " Not exported function that is referenced needs to be accessed by the
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1985 " script-local name.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1986 def Test_vim9_funcref()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1987 var sortlines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1988 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1989 def Compare(i1: number, i2: number): number
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1990 return i2 - i1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1991 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1992
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1993 export def FastSort(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1994 return range(5)->sort(Compare)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1995 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1996
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1997 export def GetString(arg: string): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1998 return arg
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1999 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2000 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2001 writefile(sortlines, 'Xsort.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2002
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2003 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2004 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2005 import './Xsort.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2006 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2007 g:result = Xsort.FastSort()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2008 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2009 Test()
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2010 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2011 writefile(lines, 'Xscript.vim', 'D')
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2012 source Xscript.vim
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2013 assert_equal([4, 3, 2, 1, 0], g:result)
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2014 unlet g:result
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2015
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2016 lines =<< trim END
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
2017 vim9script
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2018 # using a function imported with "as"
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2019 import './Xsort.vim' as anAlias
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2020 assert_equal('yes', anAlias.GetString('yes'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2021
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2022 # using the function from a compiled function
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2023 def TestMore(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2024 var s = s:anAlias.GetString('foo')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2025 return s .. anAlias.GetString('bar')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2026 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2027 assert_equal('foobar', TestMore())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2028
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2029 # error when using a function that isn't exported
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2030 assert_fails('anAlias.Compare(1, 2)', 'E1049:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2031 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2032 writefile(lines, 'Xscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2033
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2034 var Funcref = function('s:RetSome')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2035 assert_equal('some', Funcref())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2036 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2037
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2038 " Check that when searching for "FilterFunc" it finds the import in the
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2039 " script where FastFilter() is called from, both as a string and as a direct
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2040 " function reference.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2041 def Test_vim9_funcref_other_script()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2042 var filterLines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2043 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2044 export def FilterFunc(idx: number, val: number): bool
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2045 return idx % 2 == 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2046 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2047 export def FastFilter(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2048 return range(10)->filter('FilterFunc(v:key, v:val)')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2049 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2050 export def FastFilterDirect(): list<number>
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2051 return range(10)->filter(FilterFunc)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2052 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2053 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2054 writefile(filterLines, 'Xfilter.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2055
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2056 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2057 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2058 import './Xfilter.vim' as filter
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2059 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2060 var x: list<number> = filter.FastFilter()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2061 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2062 Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2063 def TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2064 var x: list<number> = filter.FastFilterDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2065 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2066 TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2067 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2068 v9.CheckScriptSuccess(lines)
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2069 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2070
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2071 def Test_import_absolute()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2072 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2073 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2074 'import "' .. escape(getcwd(), '\') .. '/Xexport_abs.vim" as abs',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2075 'def UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2076 ' g:imported_abs = abs.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2077 ' abs.exported = 8888',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2078 ' g:imported_after = abs.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2079 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2080 'UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2081 'g:import_disassembled = execute("disass UseExported")',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2082 ]
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2083 writefile(import_lines, 'Ximport_abs.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2084 writefile(s:export_script_lines, 'Xexport_abs.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2085
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2086 source Ximport_abs.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2087
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2088 assert_equal(9876, g:imported_abs)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2089 assert_equal(8888, g:imported_after)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2090 assert_match('<SNR>\d\+_UseExported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2091 'g:imported_abs = abs.exported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2092 '0 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2093 '1 STOREG g:imported_abs\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2094 'abs.exported = 8888\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2095 '2 PUSHNR 8888\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2096 '3 STORESCRIPT exported-2 in .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2097 'g:imported_after = abs.exported\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2098 '4 LOADSCRIPT exported-2 from .*Xexport_abs.vim\_s*' ..
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2099 '5 STOREG g:imported_after',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2100 g:import_disassembled)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2101
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2102 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2103 unlet g:imported_abs
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2104 unlet g:import_disassembled
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2105 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2106
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2107 def Test_import_rtp()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2108 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2109 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2110 'import "Xexport_rtp.vim" as rtp',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2111 'g:imported_rtp = rtp.exported',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2112 ]
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2113 writefile(import_lines, 'Ximport_rtp.vim', 'D')
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2114 mkdir('import', 'pR')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2115 writefile(s:export_script_lines, 'import/Xexport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2116
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2117 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2118 &rtp = getcwd()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2119 source Ximport_rtp.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2120 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2121
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2122 assert_equal(9876, g:imported_rtp)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2123
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2124 Undo_export_script_lines()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2125 unlet g:imported_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2126 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2127
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2128 def Test_import_compile_error()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2129 var export_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2130 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2131 'export def ExpFunc(): string',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2132 ' return notDefined',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2133 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2134 ]
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2135 writefile(export_lines, 'Xexported.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2136
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2137 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2138 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2139 'import "./Xexported.vim" as expo',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2140 'def ImpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2141 ' echo expo.ExpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2142 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2143 'defcompile',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2144 ]
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2145 writefile(import_lines, 'Ximport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2146
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2147 try
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2148 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2149 catch /E1001/
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2150 # Error should be before the Xexported.vim file.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2151 assert_match('E1001: Variable not found: notDefined', v:exception)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2152 assert_match('function <SNR>\d\+_ImpFunc\[1\]..<SNR>\d\+_ExpFunc, line 1', v:throwpoint)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2153 endtry
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2154 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2155
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2156 def Test_func_overrules_import_fails()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2157 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2158 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2159 export def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2160 echo 'imported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2161 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2162 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2163 writefile(export_lines, 'XexportedFunc.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2164
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2165 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2166 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2167 import './XexportedFunc.vim' as Func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2168 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2169 echo 'local to function'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2170 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2171 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2172 v9.CheckScriptFailure(lines, 'E1213: Redefining imported item "Func"')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2173
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2174 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2175 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2176 import './XexportedFunc.vim' as Func
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2177 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2178 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2179 echo 'local to function'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2180 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2181 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2182 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2183 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2184 v9.CheckScriptFailure(lines, 'E1236:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2185 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2186
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2187 def Test_source_vim9_from_legacy()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2188 var vim9_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2189 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2190 var local = 'local'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2191 g:global = 'global'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2192 export var exported = 'exported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2193 export def GetText(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2194 return 'text'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2195 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2196 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2197 writefile(vim9_lines, 'Xvim9_script.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2198
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2199 var legacy_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2200 source Xvim9_script.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2201
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2202 call assert_false(exists('local'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2203 call assert_false(exists('exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2204 call assert_false(exists('s:exported'))
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2205 call assert_equal('global', global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2206 call assert_equal('global', g:global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2207 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2208 writefile(legacy_lines, 'Xlegacy_script.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2209
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2210 source Xlegacy_script.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2211 assert_equal('global', g:global)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2212 unlet g:global
31172
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2213
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2214 legacy_lines =<< trim END
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2215 import './Xvim9_script.vim'
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2216 let g:global = s:Xvim9_script.GetText()
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2217 END
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2218 writefile(legacy_lines, 'Xlegacyimport.vim', 'D')
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2219 source Xlegacyimport.vim
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2220 assert_equal('text', g:global)
4bde058d0be7 patch 9.0.0920: cannot find an import prefixed with "s:"
Bram Moolenaar <Bram@vim.org>
parents: 30863
diff changeset
2221 unlet g:global
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2222 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2223
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2224 def Test_import_vim9_from_legacy()
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2225 var vim9_lines =<< trim END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2226 vim9script
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2227 var local = 'local'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2228 g:global = 'global'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2229 export var exported = 'exported'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2230 export def GetText(): string
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2231 return 'text'
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2232 enddef
34759
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2233 export var exported_nr: number = 22
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2234 def AddNum(n: number)
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2235 exported_nr += n
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2236 enddef
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2237 export var exportedDict: dict<func> = {Fn: AddNum}
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2238 export const CONST = 10
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2239 export final finalVar = 'abc'
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2240 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2241 writefile(vim9_lines, 'Xvim9_export.vim', 'D')
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2242
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2243 var legacy_lines =<< trim END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2244 import './Xvim9_export.vim' as vim9
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2245
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2246 call assert_false(exists('vim9'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2247 call assert_false(exists('local'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2248 call assert_false(exists('s:vim9.local'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2249 call assert_equal('global', global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2250 call assert_equal('global', g:global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2251 call assert_false(exists('exported'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2252 call assert_false(exists('s:exported'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2253 call assert_false(exists('*GetText'))
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2254
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2255 " imported symbol is script-local
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2256 call assert_equal('exported', s:vim9.exported)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2257 call assert_equal('text', s:vim9.GetText())
34759
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2258 call s:vim9.exportedDict.Fn(5)
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2259 call assert_equal(27, s:vim9.exported_nr)
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2260 call call(s:vim9.exportedDict.Fn, [3])
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2261 call assert_equal(30, s:vim9.exported_nr)
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2262 call assert_fails('let s:vim9.CONST = 20', 'E46: Cannot change read-only variable "CONST"')
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2263 call assert_fails('let s:vim9.finalVar = ""', 'E46: Cannot change read-only variable "finalVar"')
a14868d39709 patch 9.1.0257: Vim9: :call may not find imported class members
Christian Brabandt <cb@256bit.org>
parents: 34522
diff changeset
2264 call assert_fails('let s:vim9.non_existing_var = 20', 'E1048: Item not found in script: non_existing_var')
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2265 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2266 writefile(legacy_lines, 'Xlegacy_script.vim', 'D')
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2267
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2268 source Xlegacy_script.vim
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2269 assert_equal('global', g:global)
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2270 unlet g:global
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2271 enddef
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
2272
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2273 def Test_cmdline_win()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2274 # if the Vim syntax highlighting uses Vim9 constructs they can be used from
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2275 # the command line window.
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2276 mkdir('rtp/syntax', 'pR')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2277 var export_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2278 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2279 export var That = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2280 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2281 writefile(export_lines, 'rtp/syntax/Xexport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2282 var import_lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2283 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2284 import './Xexport.vim' as exp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2285 echo exp.That
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2286 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2287 writefile(import_lines, 'rtp/syntax/vim.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2288 var save_rtp = &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2289 &rtp = getcwd() .. '/rtp' .. ',' .. &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2290 syntax on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2291 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2292 autocmd CmdwinEnter * g:got_there = 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2293 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2294 # this will open and also close the cmdline window
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2295 feedkeys('q:', 'xt')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2296 assert_equal('yes', g:got_there)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2297
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2298 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2299 au!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2300 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2301 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2302 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2303
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2304 def Test_import_gone_when_sourced_twice()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2305 var exportlines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2306 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2307 if exists('g:guard')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2308 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2309 endif
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2310 g:guard = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2311 export var name = 'someName'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2312 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2313 writefile(exportlines, 'XexportScript.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2314
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2315 var lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2316 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2317 import './XexportScript.vim' as expo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2318 def g:GetName(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2319 return expo.name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2320 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2321 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2322 writefile(lines, 'XscriptImport.vim', 'D')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2323 so XscriptImport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2324 assert_equal('someName', g:GetName())
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2325
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2326 so XexportScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2327 assert_fails('call g:GetName()', 'E1149:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2328
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2329 delfunc g:GetName
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2330 unlet g:guard
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2331 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2332
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2333 " test using an auto-loaded function and variable
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2334 def Test_vim9_autoload_full_name()
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2335 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2336 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2337 export def Gettest(): string
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2338 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2339 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2340 g:some#name = 'name'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2341 g:some#dict = {key: 'value'}
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2342
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2343 export def Varargs(a1: string, ...l: list<string>): string
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2344 return a1 .. l[0] .. l[1]
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2345 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2346 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2347
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2348 mkdir('Xfulldir/autoload', 'pR')
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2349 writefile(lines, 'Xfulldir/autoload/some.vim')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2350 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2351 exe 'set rtp^=' .. getcwd() .. '/Xfulldir'
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2352
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2353 assert_equal('test', g:some#Gettest())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2354 assert_equal('name', g:some#name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2355 assert_equal('value', g:some#dict.key)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2356 g:some#other = 'other'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2357 assert_equal('other', g:some#other)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2358
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2359 assert_equal('abc', some#Varargs('a', 'b', 'c'))
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2360
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2361 # upper case script name works
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2362 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2363 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2364 export def GetOther(): string
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2365 return 'other'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2366 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2367 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2368 writefile(lines, 'Xfulldir/autoload/Other.vim')
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2369 assert_equal('other', g:Other#GetOther())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2370
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2371 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2372 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2373
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2374 def Test_vim9script_autoload()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2375 mkdir('Xaldir/autoload', 'pR')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2376 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2377 exe 'set rtp^=' .. getcwd() .. '/Xaldir'
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2378
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2379 # when the path has "/autoload/" prefix is not needed
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2380 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2381 vim9script
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2382 g:prefixed_loaded += 1
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2383
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2384 export def Gettest(): string
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2385 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2386 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2387
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2388 export var name = 'name'
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2389
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2390 export func GetFunc()
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2391 return Gettest() .. 'more' .. s:name
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2392 endfunc
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2393
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2394 export def GetDef(): string
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2395 return Gettest() .. 'more' .. name
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2396 enddef
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2397
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2398 export final fname = 'final'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2399 export const cname = 'const'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2400 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2401 writefile(lines, 'Xaldir/autoload/prefixed.vim')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2402
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2403 g:prefixed_loaded = 0
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2404 g:expected_loaded = 0
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2405 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2406 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2407 import autoload 'prefixed.vim'
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2408 assert_equal(g:expected_loaded, g:prefixed_loaded)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2409 assert_equal('test', prefixed.Gettest())
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2410 assert_equal(1, g:prefixed_loaded)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2411
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2412 assert_equal('testmorename', prefixed.GetFunc())
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2413 assert_equal('testmorename', prefixed.GetDef())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2414 assert_equal('name', prefixed.name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2415 assert_equal('final', prefixed.fname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2416 assert_equal('const', prefixed.cname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2417 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2418 v9.CheckScriptSuccess(lines)
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2419 # can source it again, autoload script not loaded again
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2420 g:expected_loaded = 1
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2421 v9.CheckScriptSuccess(lines)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2422
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2423 # can also get the items by autoload name
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2424 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2425 call assert_equal('test', prefixed#Gettest())
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2426 call assert_equal('testmorename', prefixed#GetFunc())
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2427 call assert_equal('name', prefixed#name)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2428 call assert_equal('final', prefixed#fname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2429 call assert_equal('const', prefixed#cname)
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2430 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2431 v9.CheckScriptSuccess(lines)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2432
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2433 unlet g:prefixed_loaded
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2434 unlet g:expected_loaded
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2435 &rtp = save_rtp
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2436 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2437
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2438 def Test_import_autoload_not_exported()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2439 mkdir('Xnimdir/autoload', 'pR')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2440 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2441 exe 'set rtp^=' .. getcwd() .. '/Xnimdir'
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2442
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2443 # error when using an item that is not exported from an autoload script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2444 var exportLines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2445 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2446 var notExported = 123
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2447 def NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2448 echo 'nop'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2449 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2450 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2451 writefile(exportLines, 'Xnimdir/autoload/notExport1.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2452
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2453 var lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2454 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2455 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2456 echo notExport1.notFound
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2457 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2458 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notFound')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2459
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2460 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2461 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2462 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2463 echo notExport1.notExported
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2464 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2465 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notExported')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2466
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2467 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2468 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2469 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2470 echo notExport1.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2471 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2472 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: NotFunc')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2473
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2474 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2475 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2476 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2477 echo notExport1.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2478 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2479 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2480
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2481 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2482 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2483 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2484 echo 'text'->notExport1.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2485 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2486 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: NotFunc')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2487
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2488 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2489 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2490 import autoload 'notExport1.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2491 echo 'text'->notExport1.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2492 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2493 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2494
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2495 # using a :def function we use a different autoload script every time so that
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2496 # the function is compiled without the script loaded
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2497 writefile(exportLines, 'Xnimdir/autoload/notExport2.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2498 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2499 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2500 import autoload 'notExport2.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2501 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2502 echo notExport2.notFound
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2503 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2504 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2505 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2506 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport2#notFound')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2507
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2508 writefile(exportLines, 'Xnimdir/autoload/notExport3.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2509 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2510 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2511 import autoload 'notExport3.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2512 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2513 echo notExport3.notExported
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2514 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2515 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2516 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2517 # don't get E1049 because it is too complicated to figure out
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2518 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport3#notExported')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2519
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2520 writefile(exportLines, 'Xnimdir/autoload/notExport4.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2521 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2522 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2523 import autoload 'notExport4.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2524 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2525 echo notExport4.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2526 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2527 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2528 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2529 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2530
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2531 writefile(exportLines, 'Xnimdir/autoload/notExport5.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2532 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2533 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2534 import autoload 'notExport5.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2535 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2536 echo notExport5.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2537 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2538 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2539 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2540 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2541
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2542 writefile(exportLines, 'Xnimdir/autoload/notExport6.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2543 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2544 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2545 import autoload 'notExport6.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2546 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2547 echo 'text'->notExport6.NotFunc()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2548 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2549 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2550 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2551 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2552
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2553 writefile(exportLines, 'Xnimdir/autoload/notExport7.vim')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2554 lines =<< trim END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2555 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2556 import autoload 'notExport7.vim'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2557 def Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2558 echo 'text'->notExport7.NotExport()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2559 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2560 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2561 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2562 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport')
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2563
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2564 &rtp = save_rtp
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2565 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2566
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2567 def Test_vim9script_autoload_call()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2568 mkdir('Xcalldir/autoload', 'pR')
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2569 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2570 exe 'set rtp^=' .. getcwd() .. '/Xcalldir'
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2571
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2572 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2573 vim9script
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2574
27205
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2575 export def RetArg(arg: string): string
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2576 return arg
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2577 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2578
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2579 export def Getother()
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2580 g:result = 'other'
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2581 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2582 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2583 writefile(lines, 'Xcalldir/autoload/another.vim')
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2584
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2585 lines =<< trim END
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2586 vim9script
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
2587 import autoload 'another.vim'
27205
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2588
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2589 # compile this before 'another.vim' is loaded
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2590 def CallAnother()
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2591 assert_equal('foo', 'foo'->another.RetArg())
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2592 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2593 CallAnother()
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2594
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
2595 call another.Getother()
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2596 assert_equal('other', g:result)
27295
69aa20a6e7ae patch 8.2.4176: Vim9: cannot use imported function with call()
Bram Moolenaar <Bram@vim.org>
parents: 27291
diff changeset
2597
69aa20a6e7ae patch 8.2.4176: Vim9: cannot use imported function with call()
Bram Moolenaar <Bram@vim.org>
parents: 27291
diff changeset
2598 assert_equal('arg', call('another.RetArg', ['arg']))
27563
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2599
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2600 verbose function another.Getother
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2601 # should we disallow this?
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2602 verbose function another#Getother
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2603 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2604 v9.CheckScriptSuccess(lines)
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2605
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2606 unlet g:result
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2607 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2608 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2609
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2610 def Test_vim9script_noclear_autoload()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2611 mkdir('Xnocdir/autoload', 'pR')
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2612 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2613 exe 'set rtp^=' .. getcwd() .. '/Xnocdir'
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2614
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2615 var lines =<< trim END
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2616 vim9script
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2617 export def Func(): string
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2618 return 'called'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2619 enddef
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2620 g:double_loaded = 'yes'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2621 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2622 writefile(lines, 'Xnocdir/autoload/double.vim')
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2623
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2624 lines =<< trim END
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2625 vim9script noclear
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2626 if exists('g:script_loaded')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2627 finish
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2628 endif
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2629 g:script_loaded = true
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2630
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2631 import autoload 'double.vim'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2632 nnoremap <F3> <ScriptCmd>g:result = double.Func()<CR>
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2633 END
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2634 g:double_loaded = 'no'
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2635 writefile(lines, 'Xloaddouble', 'D')
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2636 source Xloaddouble
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2637 assert_equal('no', g:double_loaded)
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2638 assert_equal(true, g:script_loaded)
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2639 source Xloaddouble
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2640 feedkeys("\<F3>", 'xt')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2641 assert_equal('called', g:result)
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2642 assert_equal('yes', g:double_loaded)
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2643
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2644 unlet g:double_loaded
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2645 unlet g:script_loaded
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2646 unlet g:result
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2647 &rtp = save_rtp
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2648 enddef
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2649
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2650 def Test_vim9script_autoload_duplicate()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2651 mkdir('Xdupdir/autoload', 'pR')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2652
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2653 var lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2654 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2655
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2656 export def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2657 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2658
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2659 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2660 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2661 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2662 writefile(lines, 'Xdupdir/autoload/dupfunc.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2663 assert_fails('source Xdupdir/autoload/dupfunc.vim', 'E1073:')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2664
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2665 lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2666 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2667
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2668 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2669 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2670
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2671 export def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2672 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2673 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2674 writefile(lines, 'Xdupdir/autoload/dup2func.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2675 assert_fails('source Xdupdir/autoload/dup2func.vim', 'E1073:')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2676
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2677 lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2678 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2679
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2680 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2681 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2682
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2683 export var Func = 'asdf'
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2684 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2685 writefile(lines, 'Xdupdir/autoload/dup3func.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2686 assert_fails('source Xdupdir/autoload/dup3func.vim', 'E1041: Redefining script item: "Func"')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2687
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2688 lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2689 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2690
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2691 export var Func = 'asdf'
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2692
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2693 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2694 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2695 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2696 writefile(lines, 'Xdupdir/autoload/dup4func.vim')
30819
d50d32026617 patch 9.0.0744: in script in autoload dir exported variable is not found
Bram Moolenaar <Bram@vim.org>
parents: 30705
diff changeset
2697 assert_fails('source Xdupdir/autoload/dup4func.vim', 'E1041:')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2698
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2699 lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2700 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2701
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2702 var Func = 'asdf'
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2703
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2704 export def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2705 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2706 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2707 writefile(lines, 'Xdupdir/autoload/dup5func.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2708 assert_fails('source Xdupdir/autoload/dup5func.vim', 'E707:')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2709
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2710 lines =<< trim END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2711 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2712
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2713 export def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2714 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2715
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2716 var Func = 'asdf'
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2717 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2718 writefile(lines, 'Xdupdir/autoload/dup6func.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2719 assert_fails('source Xdupdir/autoload/dup6func.vim', 'E1041: Redefining script item: "Func"')
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2720 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2721
27269
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2722 def Test_autoload_missing_function_name()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2723 mkdir('Xmisdir/autoload', 'pR')
27269
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2724
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2725 var lines =<< trim END
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2726 vim9script
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2727
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2728 def loadme#()
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2729 enddef
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2730 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2731 writefile(lines, 'Xmisdir/autoload/loadme.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2732 assert_fails('source Xmisdir/autoload/loadme.vim', 'E129:')
27269
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2733 enddef
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2734
27464
a14c4d3e3260 patch 8.2.4260: Vim9: can still use a global function without g:
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
2735 def Test_autoload_name_wrong()
27291
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2736 var lines =<< trim END
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2737 def Xscriptname#Func()
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2738 enddef
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2739 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2740 writefile(lines, 'Xscriptname.vim', 'D')
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2741 v9.CheckScriptFailure(lines, 'E746:')
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2742
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2743 mkdir('Xwrodir/autoload', 'pR')
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2744 lines =<< trim END
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2745 vim9script
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2746 def somescript#Func()
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2747 enddef
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2748 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2749 writefile(lines, 'Xwrodir/autoload/somescript.vim')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2750 assert_fails('source Xwrodir/autoload/somescript.vim', 'E1263:')
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2751
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2752 delete('Xwrodir', 'rf')
27291
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2753 enddef
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2754
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2755 def Test_import_autoload_postponed()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2756 mkdir('Xpostdir/autoload', 'pR')
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2757 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2758 exe 'set rtp^=' .. getcwd() .. '/Xpostdir'
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2759
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2760 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2761 vim9script
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2762
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2763 g:loaded_postponed = 'true'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2764 export var variable = 'bla'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2765 export def Function(): string
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2766 return 'bla'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2767 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2768 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2769 writefile(lines, 'Xpostdir/autoload/postponed.vim')
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2770
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2771 lines =<< trim END
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2772 vim9script
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2773
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2774 import autoload 'postponed.vim'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2775 def Tryit()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2776 echo postponed.variable
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2777 echo postponed.Function()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2778 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2779 defcompile
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2780 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2781 v9.CheckScriptSuccess(lines)
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2782 assert_false(exists('g:loaded_postponed'))
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2783 v9.CheckScriptSuccess(lines + ['Tryit()'])
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2784 assert_equal('true', g:loaded_postponed)
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2785
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2786 unlet g:loaded_postponed
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2787 &rtp = save_rtp
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2788 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2789
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2790 def Test_import_autoload_override()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2791 mkdir('Xoverdir/autoload', 'pR')
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2792 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2793 exe 'set rtp^=' .. getcwd() .. '/Xoverdir'
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2794 test_override('autoload', 1)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2795
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2796 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2797 vim9script
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2798
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2799 g:loaded_override = 'true'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2800 export var variable = 'bla'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2801 export def Function(): string
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2802 return 'bla'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2803 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2804 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2805 writefile(lines, 'Xoverdir/autoload/override.vim')
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2806
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2807 lines =<< trim END
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2808 vim9script
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2809
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2810 import autoload 'override.vim'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2811 assert_equal('true', g:loaded_override)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2812
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2813 def Tryit()
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2814 echo override.doesNotExist
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2815 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2816 defcompile
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2817 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2818 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: doesNotExist', 1)
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2819
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2820 test_override('autoload', 0)
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2821 unlet g:loaded_override
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2822 &rtp = save_rtp
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2823 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2824
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2825 def Test_autoload_mapping()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2826 mkdir('Xmapdir/autoload', 'pR')
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2827 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2828 exe 'set rtp^=' .. getcwd() .. '/Xmapdir'
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2829
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2830 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2831 vim9script
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2832
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2833 g:toggle_loaded = 'yes'
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2834
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2835 export def Toggle(): string
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2836 return ":g:toggle_called = 'yes'\<CR>"
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2837 enddef
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2838 export def Doit()
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2839 g:doit_called = 'yes'
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2840 enddef
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2841 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2842 writefile(lines, 'Xmapdir/autoload/toggle.vim')
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2843
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2844 lines =<< trim END
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2845 vim9script
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2846
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2847 import autoload 'toggle.vim'
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2848
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31172
diff changeset
2849 nnoremap <silent> <expr> tt toggle.Toggle()
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2850 nnoremap <silent> xx <ScriptCmd>toggle.Doit()<CR>
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2851 nnoremap <silent> yy <Cmd>toggle.Doit()<CR>
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2852 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2853 v9.CheckScriptSuccess(lines)
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2854 assert_false(exists("g:toggle_loaded"))
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2855 assert_false(exists("g:toggle_called"))
27213
42561e956a70 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Bram Moolenaar <Bram@vim.org>
parents: 27207
diff changeset
2856 assert_match('\d A: \f*[/\\]toggle.vim', execute('scriptnames'))
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2857
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2858 feedkeys("tt", 'xt')
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2859 assert_equal('yes', g:toggle_loaded)
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2860 assert_equal('yes', g:toggle_called)
27213
42561e956a70 patch 8.2.4135: Vim9: ":scriptnames" shows unloaded imported autoload script
Bram Moolenaar <Bram@vim.org>
parents: 27207
diff changeset
2861 assert_match('\d: \f*[/\\]toggle.vim', execute('scriptnames'))
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2862
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2863 feedkeys("xx", 'xt')
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2864 assert_equal('yes', g:doit_called)
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2865
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2866 assert_fails('call feedkeys("yy", "xt")', 'E121: Undefined variable: toggle')
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2867
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2868 nunmap tt
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2869 nunmap xx
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2870 nunmap yy
27061
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2871 unlet g:toggle_loaded
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2872 unlet g:toggle_called
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2873 &rtp = save_rtp
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2874 enddef
1a56c0252772 patch 8.2.4059: Vim9: an expression of a map cannot access script-local items
Bram Moolenaar <Bram@vim.org>
parents: 27059
diff changeset
2875
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2876 def Test_vim9script_autoload_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2877 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2878 vim9script autoload
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2879 var n = 0
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2880 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2881 v9.CheckScriptFailure(lines, 'E475: Invalid argument: autoload')
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2882
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2883 lines =<< trim END
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2884 vim9script noclear noclear
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2885 var n = 0
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2886 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2887 v9.CheckScriptFailure(lines, 'E983: Duplicate argument: noclear')
28570
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2888
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2889 lines =<< trim END
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2890 vim9script noclears
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2891 var n = 0
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2892 END
35e24d9de858 patch 8.2.4809: various things no6 properly tested
Bram Moolenaar <Bram@vim.org>
parents: 28461
diff changeset
2893 v9.CheckScriptFailure(lines, 'E475: Invalid argument: noclears')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2894 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2895
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2896 def Test_import_autoload_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2897 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2898 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2899 import autoload autoload 'prefixed.vim'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2900 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2901 v9.CheckScriptFailure(lines, 'E121: Undefined variable: autoload')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2902
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2903 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2904 vim9script
27207
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2905 import autoload './doesNotExist.vim'
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2906 END
28255
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2907 v9.CheckScriptFailure(lines, 'E282:', 2)
27207
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2908
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2909 lines =<< trim END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2910 vim9script
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2911 import autoload '/dir/doesNotExist.vim'
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2912 END
28255
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2913 v9.CheckScriptFailure(lines, 'E282:', 2)
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2914
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2915 lines =<< trim END
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2916 vim9script
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2917 import autoload '../testdir'
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2918 END
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2919 v9.CheckScriptFailure(lines, 'E17:', 2)
27207
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2920
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2921 lines =<< trim END
7b8e2bea0ec5 patch 8.2.4132: Vim9: wrong error message when autoload script can't be found
Bram Moolenaar <Bram@vim.org>
parents: 27205
diff changeset
2922 vim9script
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2923 import autoload 'doesNotExist.vim'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2924 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2925 v9.CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2926 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2927
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2928 " test disassembling an auto-loaded function starting with "debug"
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2929 def Test_vim9_autoload_disass()
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2930 mkdir('Xdasdir/autoload', 'pR')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2931 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2932 exe 'set rtp^=' .. getcwd() .. '/Xdasdir'
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2933
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2934 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2935 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2936 export def Test(): string
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2937 return 'debug'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2938 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2939 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2940 writefile(lines, 'Xdasdir/autoload/debugit.vim')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2941
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2942 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2943 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2944 export def Test(): string
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2945 return 'profile'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2946 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2947 END
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2948 writefile(lines, 'Xdasdir/autoload/profileit.vim')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2949
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2950 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2951 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2952 assert_equal('debug', debugit#Test())
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2953 disass debugit#Test
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2954 assert_equal('profile', profileit#Test())
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2955 disass profileit#Test
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2956 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2957 v9.CheckScriptSuccess(lines)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2958
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2959 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2960 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2961
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2962 " test using a vim9script that is auto-loaded from an autocmd
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2963 def Test_vim9_aucmd_autoload()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2964 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2965 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2966 export def Test()
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2967 echomsg getreg('"')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2968 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2969 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2970
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2971 mkdir('Xauldir/autoload', 'pR')
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2972 writefile(lines, 'Xauldir/autoload/foo.vim')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2973 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2974 exe 'set rtp^=' .. getcwd() .. '/Xauldir'
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2975 augroup test
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2976 autocmd TextYankPost * call foo#Test()
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2977 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2978
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2979 normal Y
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2980
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2981 augroup test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2982 autocmd!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2983 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2984 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2985 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2986
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2987 " test using a autoloaded file that is case sensitive
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2988 def Test_vim9_autoload_case_sensitive()
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2989 var lines =<< trim END
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2990 vim9script
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2991 export def CaseSensitive(): string
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2992 return 'done'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2993 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2994 END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2995
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
2996 mkdir('Xcasedir/autoload', 'pR')
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2997 writefile(lines, 'Xcasedir/autoload/CaseSensitive.vim')
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2998 var save_rtp = &rtp
29970
d891115c0aea patch 9.0.0323: using common name in tests leads to flaky tests
Bram Moolenaar <Bram@vim.org>
parents: 29930
diff changeset
2999 exe 'set rtp^=' .. getcwd() .. '/Xcasedir'
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3000
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3001 lines =<< trim END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3002 vim9script
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3003 import autoload 'CaseSensitive.vim'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3004 assert_equal('done', CaseSensitive.CaseSensitive())
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3005 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
3006 v9.CheckScriptSuccess(lines)
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3007
27150
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3008 if !has('fname_case')
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3009 lines =<< trim END
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3010 vim9script
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3011 import autoload 'CaseSensitive.vim'
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3012 import autoload 'casesensitive.vim'
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3013 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
3014 v9.CheckScriptFailure(lines, 'E1262:')
27150
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3015 endif
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
3016
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3017 &rtp = save_rtp
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3018 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
3019
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3020 " This was causing a crash because suppress_errthrow wasn't reset.
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3021 def Test_vim9_autoload_error()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3022 var lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3023 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3024 def crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3025 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3026 for x in List()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3027 endfor
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3028 catch
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3029 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3030 g:ok = true
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3031 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3032 fu List()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3033 invalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3034 endfu
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3035 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3036 alsoinvalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3037 catch /wontmatch/
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3038 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3039 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
3040 call mkdir('Xruntime/autoload', 'pR')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3041 call writefile(lines, 'Xruntime/autoload/crash.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3042
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3043 # run in a separate Vim to avoid the side effects of assert_fails()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3044 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3045 exe 'set rtp^=' .. getcwd() .. '/Xruntime'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3046 call crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3047 call writefile(['ok'], 'Xdidit')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3048 qall!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3049 END
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
3050 writefile(lines, 'Xscript', 'D')
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
3051 g:RunVim([], [], '-S Xscript')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3052 assert_equal(['ok'], readfile('Xdidit'))
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3053
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3054 delete('Xdidit')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3055
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3056 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3057 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3058 var foo#bar = 'asdf'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3059 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
3060 v9.CheckScriptFailure(lines, 'E461: Illegal variable name: foo#bar', 2)
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3061 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
3062
29828
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3063 def Test_vim9_import_symlink()
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3064 if !has('unix')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3065 CheckUnix
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3066 else
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
3067 mkdir('Xto/plugin', 'pR')
29828
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3068 var lines =<< trim END
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3069 vim9script
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3070 import autoload 'bar.vim'
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3071 g:resultFunc = bar.Func()
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3072 g:resultValue = bar.value
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3073 END
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3074 writefile(lines, 'Xto/plugin/foo.vim')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3075
30863
b4b51e01dd36 patch 9.0.0766: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30819
diff changeset
3076 mkdir('Xto/autoload', 'pR')
29828
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3077 lines =<< trim END
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3078 vim9script
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3079 export def Func(): string
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3080 return 'func'
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3081 enddef
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3082 export var value = 'val'
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3083 END
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3084 writefile(lines, 'Xto/autoload/bar.vim')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3085
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3086 var save_rtp = &rtp
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3087 &rtp = getcwd() .. '/Xfrom'
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3088 system('ln -s ' .. getcwd() .. '/Xto Xfrom')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3089
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3090 source Xfrom/plugin/foo.vim
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3091 assert_equal('func', g:resultFunc)
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3092 assert_equal('val', g:resultValue)
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3093
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3094 var infoTo = getscriptinfo()->filter((_, v) => v.name =~ 'Xto/autoload/bar')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3095 var infoFrom = getscriptinfo()->filter((_, v) => v.name =~ 'Xfrom/autoload/bar')
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3096 assert_equal(1, len(infoTo))
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3097 assert_equal(1, len(infoFrom))
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3098 assert_equal(infoTo[0].sid, infoFrom[0].sourced)
29836
a8831ab29aee patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 29828
diff changeset
3099 var output: string
a8831ab29aee patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 29828
diff changeset
3100 redir => output
a8831ab29aee patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 29828
diff changeset
3101 scriptnames
a8831ab29aee patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 29828
diff changeset
3102 redir END
a8831ab29aee patch 9.0.0257: "->" in ":scriptnames" output not tested yet
Bram Moolenaar <Bram@vim.org>
parents: 29828
diff changeset
3103 assert_match(infoFrom[0].sid .. '->' .. infoFrom[0].sourced .. '.*Xfrom', output)
29828
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3104
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3105 unlet g:resultFunc
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3106 unlet g:resultValue
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3107 &rtp = save_rtp
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3108 delete('Xfrom', 'rf')
34965
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3109
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3110 # Access item from :def imported through symbolic linked directory. #14536
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3111 mkdir('Xto/real_dir', 'pR')
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3112 lines =<< trim END
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3113 vim9script
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3114 export const val = 17
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3115 export def F(): number
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3116 return 23
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3117 enddef
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3118 END
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3119 writefile(lines, 'Xto/real_dir/real_file.vim')
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3120 system('ln -s real_dir Xto/syml_dir')
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3121 defer delete('Xto/syml_dir')
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3122 lines =<< trim END
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3123 vim9script
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3124 import autoload './Xto/syml_dir/real_file.vim'
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3125
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3126 def Fmain()
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3127 assert_equal(17, real_file.val)
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3128 enddef
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3129 def F2()
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3130 assert_equal(23, real_file.F())
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3131 enddef
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3132 Fmain()
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3133 F2()
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3134 END
4cc31827e1db patch 9.1.0338: Vim9: import through symlinks not correctly handled
Christian Brabandt <cb@256bit.org>
parents: 34773
diff changeset
3135 v9.CheckScriptSuccess(lines)
29828
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3136 endif
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3137 enddef
6b7020f3d856 patch 9.0.0253: a symlink to an autoload script results in two entries
Bram Moolenaar <Bram@vim.org>
parents: 29810
diff changeset
3138
33029
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3139 def Test_export_in_conditional_block()
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3140 var lines =<< trim END
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3141 vim9script
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3142 if exists('this_will_fail')
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3143 export var MyVar = "hello"
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3144 endif
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3145 END
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3146 v9.CheckScriptSuccess(lines)
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3147 enddef
c7591e326ded patch 9.0.1806: Vim9: bogus error on export
Christian Brabandt <cb@256bit.org>
parents: 31849
diff changeset
3148
34522
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3149 " Import fails when an autoloaded script is imported again.
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3150 " Github issue #14171
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3151 def Test_import_autloaded_script()
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3152 mkdir('Ximporttwice', 'pR')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3153 mkdir('Ximporttwice/plugin')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3154 mkdir('Ximporttwice/autoload')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3155 var save_rtp = &rtp
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3156 exe 'set rtp^=' .. getcwd() .. '/Ximporttwice'
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3157
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3158 var lines =<< trim END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3159 vim9script
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3160
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3161 export def H(): number
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3162 return 10
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3163 enddef
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3164 END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3165 writefile(lines, 'Ximporttwice/autoload/hello.vim')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3166
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3167 lines =<< trim END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3168 vim9script
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3169
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3170 import "./hello.vim"
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3171 export def W(): number
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3172 return 20
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3173 enddef
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3174 END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3175 writefile(lines, 'Ximporttwice/autoload/world.vim')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3176
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3177 lines =<< trim END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3178 vim9script
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3179
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3180 import autoload '../autoload/hello.vim'
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3181 import autoload '../autoload/world.vim'
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3182
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3183 command Hello echo hello.H()
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3184 command World echo world.W()
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3185 END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3186 writefile(lines, 'Ximporttwice/plugin/main.vim')
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3187
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3188 lines =<< trim END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3189 vim9script
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3190
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3191 source ./Ximporttwice/plugin/main.vim
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3192 assert_equal(['20'], execute('World')->split("\n"))
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3193 END
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3194 v9.CheckScriptSuccess(lines)
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3195
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3196 &rtp = save_rtp
a089397c9bc6 patch 9.1.0165: Vim9: Importing an autoload imported script fails
Christian Brabandt <cb@256bit.org>
parents: 33029
diff changeset
3197 enddef
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3198
34773
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3199 " Test for autoloading an imported dict func
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3200 def Test_autoload_import_dict_func()
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3201 mkdir('Xdir/autoload', 'pR')
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3202 var lines =<< trim END
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3203 vim9script
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3204 export var al_exported_nr: number = 33
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3205 def Al_AddNum(n: number)
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3206 al_exported_nr += n
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3207 enddef
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3208 export var al_exportedDict: dict<func> = {Fn: Al_AddNum}
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3209 END
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3210 writefile(lines, 'Xdir/autoload/Xdictfunc.vim')
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3211
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3212 var save_rtp = &rtp
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3213 exe 'set rtp^=' .. getcwd() .. '/Xdir'
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3214 lines =<< trim END
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3215 import './Xdir/autoload/Xdictfunc.vim'
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3216 call Xdictfunc#al_exportedDict.Fn(5)
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3217 call assert_equal(38, Xdictfunc#al_exported_nr)
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3218 call call(Xdictfunc#al_exportedDict.Fn, [3])
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3219 call assert_equal(41, Xdictfunc#al_exported_nr)
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3220 END
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3221 v9.CheckScriptSuccess(lines)
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3222 &rtp = save_rtp
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3223 enddef
af48c532bd88 patch 9.1.0263: Vim9: Problem with lambda blocks in enums and classes
Christian Brabandt <cb@256bit.org>
parents: 34759
diff changeset
3224
35136
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3225 " Test for changing the value of an imported Dict item
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3226 def Test_set_imported_dict_item()
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3227 var lines =<< trim END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3228 vim9script
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3229 export var dict1: dict<bool> = {bflag: false}
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3230 export var dict2: dict<dict<bool>> = {x: {bflag: false}}
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3231 END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3232 writefile(lines, 'XimportedDict.vim', 'D')
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3233
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3234 lines =<< trim END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3235 vim9script
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3236 import './XimportedDict.vim'
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3237 assert_equal(XimportedDict.dict1.bflag, false)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3238 XimportedDict.dict1.bflag = true
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3239 assert_equal(XimportedDict.dict1.bflag, true)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3240 XimportedDict.dict2.x.bflag = true
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3241 assert_equal(XimportedDict.dict2.x.bflag, true)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3242 assert_equal('bool', typename(XimportedDict.dict1.bflag))
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3243 assert_equal('bool', typename(XimportedDict.dict2.x.bflag))
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3244 assert_equal('bool', typename(XimportedDict.dict2['x'].bflag))
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3245 assert_equal('bool', typename(XimportedDict.dict2.x['bflag']))
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3246
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3247 assert_equal(XimportedDict.dict1['bflag'], true)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3248 XimportedDict.dict1['bflag'] = false
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3249 assert_equal(XimportedDict.dict1.bflag, false)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3250 XimportedDict.dict2['x']['bflag'] = false
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3251 assert_equal(XimportedDict.dict2['x'].bflag, false)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3252 END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3253 v9.CheckScriptSuccess(lines)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3254
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3255 lines =<< trim END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3256 vim9script
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3257 import './XimportedDict.vim'
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3258 XimportedDict.dict2.x.bflag = []
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3259 END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3260 v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected bool but got list<any>', 3)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3261 enddef
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3262
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3263 " Test for changing the value of an imported class member
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3264 def Test_set_imported_class_member()
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3265 var lines =<< trim END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3266 vim9script
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3267 export class Config
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3268 public static var option = false
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3269 endclass
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3270 END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3271 writefile(lines, 'XimportedClass.vim', 'D')
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3272
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3273 lines =<< trim END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3274 vim9script
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3275 import './XimportedClass.vim' as foo
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3276 type FooConfig = foo.Config
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3277 assert_equal(false, FooConfig.option)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3278 assert_equal(false, foo.Config.option)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3279 foo.Config.option = true
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3280 assert_equal(true, foo.Config.option)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3281 assert_equal(true, FooConfig.option)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3282 END
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3283 v9.CheckScriptSuccess(lines)
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3284 enddef
f2b94f240b7d patch 9.1.0398: Vim9: imported vars are not properly type checked
Christian Brabandt <cb@256bit.org>
parents: 35037
diff changeset
3285
35148
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3286 " Test for using an imported function from the vimrc file.  The function is
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3287 " defined in the 'start' directory of a package.
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3288 def Test_import_from_vimrc()
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3289 mkdir('Ximport/pack/foobar/start/foo/autoload', 'pR')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3290 var lines =<< trim END
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3291 vim9script
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3292 export def Foo()
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3293 writefile(['Foo called'], 'Xoutput.log')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3294 enddef
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3295 END
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3296 writefile(lines, 'Ximport/pack/foobar/start/foo/autoload/foo.vim')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3297 lines =<< trim END
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3298 vim9script
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3299 set packpath+=./Ximport
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3300 try
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3301 import autoload 'foo.vim'
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3302 foo.Foo()
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3303 catch
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3304 writefile(['Failed to import foo.vim'], 'Xoutput.log')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3305 endtry
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3306 qall!
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3307 END
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3308 writefile(lines, 'Xvimrc', 'D')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3309 g:RunVim([], [], '-u Xvimrc')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3310 assert_equal(['Foo called'], readfile('Xoutput.log'))
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3311 delete('Xoutput.log')
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3312 enddef
0ef2499e9812 patch 9.1.0403: Vim9: not able to import file from start dir
Christian Brabandt <cb@256bit.org>
parents: 35136
diff changeset
3313
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3314 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker