annotate src/testdir/test_vim9_import.vim @ 28447:6f753a8125f0 v8.2.4748

patch 8.2.4748: cannot use an imported function in a mapping Commit: https://github.com/vim/vim/commit/8944551534b311a2d25acf6e8db235c6d906256c Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 14 12:58:23 2022 +0100 patch 8.2.4748: cannot use an imported function in a mapping Problem: Cannot use an imported function in a mapping. Solution: Recognize <SID>name.Func.
author Bram Moolenaar <Bram@vim.org>
date Thu, 14 Apr 2022 14:00:05 +0200
parents 62689b6765d6
children 862068e9e2a7
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()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
42 writefile(s:export_script_lines, 'Xexport.vim')
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
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
87 writefile(import_script_lines, 'Ximport.vim')
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
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
315 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
316 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
317 import Xexport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
318 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
319 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
320 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
321
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
322 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
323 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
324 import './XnoExport.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
325 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
326 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
327 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
328
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
329 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
330 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
331 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
332 var exported = 5
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_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
335 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
336
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
337 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
338 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
339 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
340 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
341 expo = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
342 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
343 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
344 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
345 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
346 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
347
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
348 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
349 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
350 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
351 def Test()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
352 expo.99 = 9
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
353 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
354 defcompile
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
355 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
356 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
357 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
358
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
359 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
360 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
361 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
362 expo.exported = 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
363 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
364 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
365 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
366
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_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
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.CONST = 4321
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_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
373 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
374
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
375 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
376 delete('Xexport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
377
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
378 # 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
379 # 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
380 set cpo=abcd
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
381 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
382 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
383 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
384 set cpo+=f
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
385 set cpo-=c
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
386 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
387 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
388 writefile(lines, 'Xvim9_script')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
389 source Xvim9_script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
390 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
391 set cpo&vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
392 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
393 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
394 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
395
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
396 delete('Xvim9_script')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
397 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
398
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
399 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
400 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
401 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
402 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
403 return 42
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
404 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
405 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
406 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
407 writefile(lines, 'Xlib.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
408
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
409 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
410 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
411 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
412 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
413 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
414
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
415 def DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
416 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
417 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
418 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
419 DoTest()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
420 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
421 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
422
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
423 delete('Xlib.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
424 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
425
27807
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
426 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
427 # 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
428 # one.
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
429 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
430 vim9script
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
431
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
432 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
433 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
434 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
435
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
436 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
437 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
438 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
439 return d
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
440 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
441
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
442 NewLspServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
443 END
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
444 writefile(lines, 'Xserver.vim')
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
445
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
446 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
447 vim9script
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
448
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
449 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
450
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
451 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
452 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
453
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
454 def AddServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
455 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
456 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
457 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
458 AddServer()
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
459 END
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
460 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
461
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
462 delete('Xserver.vim')
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
463 enddef
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
464
292a6bd86c30 patch 8.2.4429: using script-local function from the wrong script
Bram Moolenaar <Bram@vim.org>
parents: 27756
diff changeset
465
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
466 def Test_import_fails()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
467 writefile([], 'Xfoo.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
468 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
469 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
470 foo = 'bar'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
471 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
472 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
473 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
474 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
475 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
476 var that = foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
477 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
478 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
479 lines =<< trim END
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
480 vim9script
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
481 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
482 var that: any
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
483 that += foo
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
484 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
485 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
486 lines =<< trim END
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
487 vim9script
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
488 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
489 foo += 9
b73e3617c1d6 patch 8.2.4167: Vim9: error message for old style import
Bram Moolenaar <Bram@vim.org>
parents: 27269
diff changeset
490 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
491 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
492
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
493 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
494 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
495 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
496 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
497 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
498 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
499 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
500 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
501 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
502 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
503 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
504 vim9script
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 g:foo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
506 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
507 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
508
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
509 delete('Xfoo.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
510
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
511 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
512 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
513 def TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
514 echo 'the func'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
515 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
516 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
517 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
518 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
519
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
520 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
521 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
522 That()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
523 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
524 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
525
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
526 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
527 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
528 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
529 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
530 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
531 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
532 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
533 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
534 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
535
73232ed49cf2 patch 8.2.4145: confusing error when using name of import for a function
Bram Moolenaar <Bram@vim.org>
parents: 27217
diff changeset
536 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
537 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
538 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
539 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
540 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
541
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
542 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
543
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
544 lines =<< trim END
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
545 vim9script
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
546 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
547 import './Xyourself.vim'
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
548 END
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
549 writefile(lines, 'Xyourself.vim')
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
550 assert_fails('source Xyourself.vim', 'E1088:')
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
551 delete('Xyourself.vim')
db1831f585a4 patch 8.2.4330: Vim9: no error if script imports itself
Bram Moolenaar <Bram@vim.org>
parents: 27563
diff changeset
552
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
553 mkdir('Ximport')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
554
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
555 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
556 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
557 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
558 import './Ximport/.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
559 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
560 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
561 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
562 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
563 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
564 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
565 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
566
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
567 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
568 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
569 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
570 import './Ximport/.vimrc'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
571 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
572 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
573 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
574 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
575 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
576 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
577 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
578
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
579 delete('Ximport', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
580 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
581
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
582 func g:Trigger()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
583 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
584 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
585 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
586
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
587 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
588 # 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
589 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
590 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
591 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
592 return 'yes'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
593 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
594 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
595 writefile(export_lines, 'Xexport_that.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
596
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
597 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
598 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
599 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
600 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
601 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
602 writefile(import_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
603
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
604 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
605 feedkeys('trigger', "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
606
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
607 delete('Xexport_that.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
608 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
609 nunmap trigger
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
610 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
611
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
612 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
613 # check that :import works when the buffer is locked
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
614 mkdir('ftplugin', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
615 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
616 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
617 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
618 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
619 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
620
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
621 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
622 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
623 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
624 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
625 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
626 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
627 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
628
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
629 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
630 &rtp = getcwd() .. ',' .. &rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
631
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
632 filetype plugin on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
633 copen
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
634 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
635
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
636 quit!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
637 delete('Xexport_ft.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
638 delete('ftplugin', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
639 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
640 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
641
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
642 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
643 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
644 vim9script
28447
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
645 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
646 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
647 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
648 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
649 writefile(lines, 'XsomeExport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
650 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
651 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
652 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
653 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
654 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
655 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
656 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
657 writefile(lines, 'Xmapscript.vim')
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 source Xmapscript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
660 feedkeys("\<F3>", "xt")
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
661 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
662 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
663 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
664
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
665 unlet g:result
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
666 delete('XsomeExport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
667 delete('Xmapscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
668 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
669 nunmap <F4>
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
670 enddef
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
671
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
672 def Test_use_autoload_import_in_mapping()
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
673 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
674 vim9script
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
675 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
676 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
677 enddef
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
678 END
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
679 writefile(lines, 'XautoloadExport.vim')
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
680 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
681 vim9script
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
682 import autoload './XautoloadExport.vim' as some
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
683 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
684 END
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
685 writefile(lines, 'Xmapscript.vim')
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
686
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
687 source Xmapscript.vim
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
688 assert_match('\d\+ A: .*XautoloadExport.vim', execute('scriptnames')->split("\n")[-1])
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
689 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
690 assert_equal(42, g:result)
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
691
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
692 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
693 delete('XautoloadExport.vim')
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
694 delete('Xmapscript.vim')
6f753a8125f0 patch 8.2.4748: cannot use an imported function in a mapping
Bram Moolenaar <Bram@vim.org>
parents: 28309
diff changeset
695 nunmap <F3>
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
696 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
697
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
698 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
699 var lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
700 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
701 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
702 return ['abcd']
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
703 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
704 END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
705 writefile(lines, 'Xscript.vim')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
706
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
707 lines =<< trim END
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
708 vim9script
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
709 import './Xscript.vim'
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
710
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
711 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
712 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
713 assert_equal('#Cmd abcd', @:)
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
714 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
715 v9.CheckScriptSuccess(lines)
27189
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
716
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
717 delcommand Cmd
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
718 delete('Xscript.vim')
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
719 enddef
a10936038ec9 patch 8.2.4123: complete function cannot be import.Name
Bram Moolenaar <Bram@vim.org>
parents: 27177
diff changeset
720
27285
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
721 def Test_use_autoload_import_in_insert_completion()
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
722 mkdir('Xdir/autoload', 'p')
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
723 var save_rtp = &rtp
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
724 exe 'set rtp^=' .. getcwd() .. '/Xdir'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
725
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
726 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
727 vim9script
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
728 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
729 if findbase
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
730 return 1
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
731 endif
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
732 return [
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
733 'check',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
734 'experiment',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
735 'test',
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
736 'verification'
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
737 ]
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
738 enddef
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
739 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
740 END
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
741 writefile(lines, 'Xdir/autoload/completion.vim')
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
742
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
743 new
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
744 lines =<< trim END
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
745 vim9script
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
746 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
747 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
748 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
749 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
750 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
751 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
752 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
753 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
754 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
755
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
756 set thesaurusfunc=
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
757 bwipe!
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
758 delete('Xdir', 'rf')
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
759 &rtp = save_rtp
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
760 enddef
53edd190a607 patch 8.2.4171: cannot invoke option function using autoload import
Bram Moolenaar <Bram@vim.org>
parents: 27277
diff changeset
761
27362
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
762 def Test_use_autoload_import_partial_in_opfunc()
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
763 mkdir('Xdir/autoload', 'p')
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
764 var save_rtp = &rtp
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
765 exe 'set rtp^=' .. getcwd() .. '/Xdir'
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
766
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
767 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
768 vim9script
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
769 export def Opfunc(..._)
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
770 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
771 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
772 END
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
773 writefile(lines, 'Xdir/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
774
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
775 new
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
776 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
777 vim9script
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
778 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
779 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
780 def TheFunc(): string
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
781 &operatorfunc = function('opfunc.Opfunc', [0])
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
782 return 'g@'
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
783 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
784 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
785 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
786 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
787 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
788
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
789 set opfunc=
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
790 bwipe!
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
791 delete('Xdir', 'rf')
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
792 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
793 &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
794 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
795
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
796 def Test_set_opfunc_to_autoload_func_directly()
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
797 mkdir('Xdir/autoload', 'p')
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
798 var save_rtp = &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
799 exe 'set rtp^=' .. getcwd() .. '/Xdir'
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
800
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
801 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
802 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
803 export def 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
804 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
805 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
806 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
807 writefile(lines, 'Xdir/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
808
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
809 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
810 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
811 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
812 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
813 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
814 def TheFunc(): string
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
815 &operatorfunc = opfunc.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
816 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
817 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
818 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
819 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
820 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
821 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
822
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
823 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
824 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
825 delete('Xdir', 'rf')
1a6421c5be20 patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents: 27362
diff changeset
826 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
827 &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
828 enddef
2ca6dd1f62af patch 8.2.4209: partial in 'opfunc' cannot use an imported function
Bram Moolenaar <Bram@vim.org>
parents: 27348
diff changeset
829
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
830 def Test_use_autoload_import_in_fold_expression()
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
831 mkdir('Xdir/autoload', 'p')
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
832 var save_rtp = &rtp
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
833 exe 'set rtp^=' .. getcwd() .. '/Xdir'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
834
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
835 var lines =<< trim END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
836 vim9script
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
837 export def Expr(): string
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
838 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
839 enddef
27301
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
840 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
841 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
842 enddef
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
843 g:fold_loaded = 'yes'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
844 END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
845 writefile(lines, 'Xdir/autoload/fold.vim')
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
846
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
847 lines =<< trim END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
848 vim9script
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
849 import autoload 'fold.vim'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
850 &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
851 &foldtext = 'fold.Text()'
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
852 &foldmethod = 'expr'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
853 &debug = 'throw'
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
854 END
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
855 new
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
856 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
857 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
858 v9.CheckScriptSuccess(lines)
27289
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
859 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
860 redraw
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
861 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
862
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
863 # 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
864 edit! otherfile
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
865 redraw
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
866
27301
ebe56a24acb6 patch 8.2.4179: 'foldtext' is evaluated in the current script context
Bram Moolenaar <Bram@vim.org>
parents: 27297
diff changeset
867 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
868 bwipe!
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
869 delete('Xdir', 'rf')
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
870 &rtp = save_rtp
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
871 enddef
e11682ba8c80 patch 8.2.4173: cannot use an import in 'foldexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27285
diff changeset
872
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
873 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
874 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
875 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
876
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
877 g:loaded = 'yes'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
878 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
879 return 'relfunc'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
880 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
881 def NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
882 echo 'not'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
883 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
884
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
885 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
886 var notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
887 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
888 writefile(lines, 'XimportRel.vim')
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
889 writefile(lines, 'XimportRel2.vim')
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
890 writefile(lines, 'XimportRel3.vim')
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
891 writefile(lines, 'XimportRel4.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
892 writefile(lines, 'XimportRel5.vim')
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
893
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
894 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
895 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
896 g:loaded = 'no'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
897 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
898 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
899
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
900 def AFunc(): string
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
901 var res = ''
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
902 res ..= XimportRel.RelFunc()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
903 res ..= '/'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
904 res ..= XimportRel.someText
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
905 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
906 return res
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
907 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
908 # 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
909 defcompile
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
910 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
911
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
912 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
913 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
914 unlet g:loaded
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
915
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
916 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
917 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
918 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
919 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
920 v9.CheckScriptSuccess(lines)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
921
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
922 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
923 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
924 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
925 echo XimportRel.NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
926 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
927 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
928
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
929 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
930 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
931 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
932 echo XimportRel.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
933 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
934 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
935
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
936 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
937 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
938 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
939 XimportRel.notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
940 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
941 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
942
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
943 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
944 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
945 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
946 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
947 echo XimportRel.NotExported()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
948 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
949 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
950 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
951 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
952
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
953 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
954 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
955 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
956 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
957 echo XimportRel.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
958 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
959 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
960 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
961 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
962
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
963 # 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
964 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
965 vim9script
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
966 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
967 def Func()
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
968 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
969 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
970 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
971 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
972 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
973
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
974 # 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
975 g:loaded = 'no'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
976 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
977 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
978 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
979 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
980 echo XimportRel2.notexp
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
981 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
982 defcompile
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
983 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
984 v9.CheckScriptSuccess(lines)
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
985 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
986
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
987 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
988 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
989 import autoload './XimportRel.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
990 def Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
991 XimportRel.notexp = 'bad'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
992 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
993 Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
994 END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
995 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
996
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
997 # 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
998 lines =<< trim END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
999 vim9script
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1000 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
1001 def Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1002 XimportRel3.notexp = 'bad'
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1003 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1004 Func()
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1005 END
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1006 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
1007 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
1008 unlet g:loaded
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1009
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1010 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1011 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1012 import autoload './XimportRel5.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1013 def Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1014 XimportRel5.nosuchvar = 'bad'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1015 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1016 Func()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1017 END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1018 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
1019 unlet g:loaded
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1020
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1021 # 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
1022 writefile(['vim9script'], 'XimportRelDel.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1023 lines =<< trim END
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1024 vim9script
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1025
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1026 import autoload './XimportRelDel.vim'
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1027 def DoIt()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1028 echo XimportRelDel.var
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1029 enddef
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1030 defcompile
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1031 delete('XimportRelDel.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1032 DoIt()
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1033 END
28309
62689b6765d6 patch 8.2.4680: build failure without +postscript
Bram Moolenaar <Bram@vim.org>
parents: 28305
diff changeset
1034 v9.CheckScriptFailure(lines, 'E484:')
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1035
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1036 delete('XimportRel.vim')
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1037 delete('XimportRel2.vim')
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1038 delete('XimportRel3.vim')
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1039 delete('XimportRel4.vim')
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1040 delete('XimportRel5.vim')
28249
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1041 enddef
4b322951ebac patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents: 28162
diff changeset
1042
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
1043 def Test_autoload_import_relative_autoload_dir()
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
1044 mkdir('autoload', 'p')
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
1045 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
1046 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
1047 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
1048 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
1049 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
1050 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
1051 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
1052
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
1053 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
1054 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
1055 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
1056 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
1057 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
1058 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
1059 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
1060 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
1061 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
1062 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
1063
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
1064 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
1065 delete('autoload', 'rf')
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
1066 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
1067
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1068 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
1069 CheckExecutable diff
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1070
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1071 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
1072 endfunc
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1073
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1074 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
1075 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
1076 vim9script
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1077
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1078 export def DiffExpr()
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1079 # 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
1080 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
1081 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
1082 .. 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
1083 enddef
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1084 END
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1085 writefile(lines, 'Xdiffexpr')
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1086
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1087 lines =<< trim END
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1088 vim9script
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1089 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
1090
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1091 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
1092 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
1093 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1094 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
1095
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1096 enew!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1097 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
1098 diffthis
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1099
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1100 botright vert new
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1101 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
1102 diffthis
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1103 # 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
1104 redraw
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1105
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1106 diffoff!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1107 bwipe!
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1108 bwipe!
27344
44e82999b4e1 patch 8.2.4200: some tests do not clean up properly
Bram Moolenaar <Bram@vim.org>
parents: 27338
diff changeset
1109 delete('Xdiffexpr')
27305
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1110 enddef
30d8437ad7cc patch 8.2.4181: Vim9: cannot use an import in 'diffexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27301
diff changeset
1111
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1112 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
1113 var lines =<< trim END
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1114 vim9script
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1115 export def TPatch()
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1116 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
1117 enddef
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1118 END
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1119 writefile(lines, 'Xpatchexpr')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1120
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1121 lines =<< trim END
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1122 vim9script
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1123 import './Xpatchexpr' as patch
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1124 set patchexpr=patch.TPatch()
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1125 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1126 v9.CheckScriptSuccess(lines)
27315
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1127
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1128 call writefile(['input file'], 'Xinput')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1129 call writefile(['diff file'], 'Xdiff')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1130 :%bwipe!
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1131 edit Xinput
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1132 diffpatch Xdiff
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1133 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
1134
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1135 call delete('Xinput')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1136 call delete('Xdiff')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1137 call delete('Xpatchexpr')
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1138 set patchexpr&
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1139 :%bwipe!
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1140 enddef
a195a900a329 patch 8.2.4186: cannot use an import in 'patchexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27313
diff changeset
1141
27309
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1142 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
1143 var lines =<< trim END
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1144 vim9script
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1145 export def MyFormatExpr(): number
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1146 g:did_format = 'yes'
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1147 return 0
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1148 enddef
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1149 END
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1150 writefile(lines, 'Xformatter')
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1151
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1152 lines =<< trim END
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1153 vim9script
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1154 import './Xformatter' as format
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1155 set formatexpr=format.MyFormatExpr()
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1156 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1157 v9.CheckScriptSuccess(lines)
27309
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1158
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1159 new
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1160 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
1161 normal gqG
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1162 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
1163
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1164 bwipe!
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1165 delete('Xformatter')
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1166 unlet g:did_format
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1167 set formatexpr=
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1168 enddef
391011658d95 patch 8.2.4183: cannot use an import in 'formatexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27305
diff changeset
1169
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1170 def Test_import_in_includeexpr()
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1171 writefile(['found it'], 'Xthisfile')
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1172 new
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1173
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1174 var lines =<< trim END
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1175 vim9script
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1176 export def DoSub(): string
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1177 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
1178 enddef
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1179 END
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1180 writefile(lines, 'Xinclude.vim')
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1181
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1182 lines =<< trim END
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1183 vim9script
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1184 import './Xinclude.vim'
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1185 set includeexpr=Xinclude.DoSub()
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1186 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1187 v9.CheckScriptSuccess(lines)
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1188
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1189 setline(1, ['Xthatfile'])
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1190 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
1191 assert_equal('Xthisfile', expand('%'))
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1192
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1193 bwipe!
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1194 bwipe!
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1195 set includeexpr=
27344
44e82999b4e1 patch 8.2.4200: some tests do not clean up properly
Bram Moolenaar <Bram@vim.org>
parents: 27338
diff changeset
1196 delete('Xinclude.vim')
27311
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1197 delete('Xthisfile')
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1198 enddef
b3ef31c6a922 patch 8.2.4184: cannot use an import in 'includeexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27309
diff changeset
1199
27313
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1200 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
1201 var lines =<< trim END
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1202 vim9script
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1203 export def GetIndent(): number
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1204 return 5
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1205 enddef
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1206 END
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1207 writefile(lines, 'Xindenter')
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1208
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1209 lines =<< trim END
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1210 vim9script
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1211 import './Xindenter' as indent
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1212 set indentexpr=indent.GetIndent()
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1213 set debug=throw
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1214 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1215 v9.CheckScriptSuccess(lines)
27313
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1216
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1217 new
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1218 setline(1, 'hello')
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1219 normal ==
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1220 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
1221
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1222 bwipe!
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1223 set indentexpr= debug=
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1224 delete('Xindenter')
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1225 enddef
748ab01dbdc5 patch 8.2.4185: cannot use an import in 'indentexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27311
diff changeset
1226
27328
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1227 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
1228 CheckFeature postscript
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1229 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
1230 endfunc
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1231
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1232 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
1233 var lines =<< trim END
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1234 vim9script
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1235 export def PrintFile(): bool
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1236 g:printed = 'yes'
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1237 delete('v:fname_in')
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1238 return false
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1239 enddef
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1240 END
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1241 writefile(lines, 'Xprint.vim')
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1242
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1243 lines =<< trim END
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1244 vim9script
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1245 import './Xprint.vim'
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1246 set printexpr=Xprint.PrintFile()
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1247 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1248 v9.CheckScriptSuccess(lines)
27328
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1249
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1250 help
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1251 hardcopy dummy args
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1252 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
1253
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1254 delete('Xprint.vim')
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1255 set printexpr=
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1256 enddef
7382135dac01 patch 8.2.4192: cannot use an import in 'printexpr'
Bram Moolenaar <Bram@vim.org>
parents: 27315
diff changeset
1257
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1258 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
1259 var lines =<< trim END
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1260 vim9script
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1261 export def MakeUpper(): bool
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1262 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
1263 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
1264 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
1265 return false # success
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1266 enddef
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1267 END
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1268 writefile(lines, 'Xconvert.vim')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1269
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1270 lines =<< trim END
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1271 vim9script
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1272 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
1273 set charconvert=conv.MakeUpper()
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1274 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1275 v9.CheckScriptSuccess(lines)
27330
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1276
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1277 writefile(['one', 'two'], 'Xfile')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1278 new Xfile
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1279 write ++enc=ucase Xfile1
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1280 assert_equal(['ONE', 'TWO'], readfile('Xfile1'))
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1281
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1282 delete('Xfile')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1283 delete('Xfile1')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1284 delete('Xconvert.vim')
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1285 bwipe!
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1286 set charconvert&
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1287 enddef
aeadf4315bef patch 8.2.4193: cannot use an import in 'charconvert'
Bram Moolenaar <Bram@vim.org>
parents: 27328
diff changeset
1288
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
1289 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
1290 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
1291 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
1292 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
1293
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1294 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
1295 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
1296 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
1297 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
1298 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
1299 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
1300 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
1301 writefile(lines, 'Xsuggest.vim')
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1302
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1303 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
1304 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
1305 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
1306 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
1307 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1308 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
1309
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1310 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
1311 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
1312
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1313 delete('Xsuggest.vim')
c62006deb5c1 patch 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
Bram Moolenaar <Bram@vim.org>
parents: 27330
diff changeset
1314 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
1315 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
1316
27348
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1317 def Test_export_shadows_global_function()
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1318 mkdir('Xdir/autoload', 'p')
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1319 var save_rtp = &rtp
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1320 exe 'set rtp^=' .. getcwd() .. '/Xdir'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1321
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1322 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
1323 vim9script
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1324 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
1325 return 'Shadow()'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1326 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1327 END
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1328 writefile(lines, 'Xdir/autoload/shadow.vim')
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1329
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1330 lines =<< trim END
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1331 vim9script
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1332
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1333 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
1334 return 'global'
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1335 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1336
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1337 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
1338 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
1339 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1340 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
1341
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1342 delfunc g:Shadow
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1343 bwipe!
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1344 delete('Xdir', 'rf')
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1345 &rtp = save_rtp
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1346 enddef
9a9c34c84cd4 patch 8.2.4202: Vim9: cannot export function that exists globally
Bram Moolenaar <Bram@vim.org>
parents: 27344
diff changeset
1347
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1348 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
1349 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
1350 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
1351 v9.CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1352
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1353 assert_fails('export something', 'E1043:')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1354 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1355
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1356 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
1357 CheckRunVimInTerminal
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1358
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1359 " 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
1360 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
1361 endfunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1362
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1363 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
1364 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
1365 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1366 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
1367 return 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1368 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1369 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1370 writefile(export, 'XexportCmd.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1371
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1372 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
1373 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
1374 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
1375
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1376 delete('XexportCmd.vim')
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1377 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
1378 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1379
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1380 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
1381 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
1382 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1383 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
1384
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1385 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
1386 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1387 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1388 writefile(lines, 'XExportReload')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1389 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1390 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1391 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
1392 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
1393 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
1394
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1395 def Again(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1396 return 'again'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1397 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1398
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1399 exp.TheFunc()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1400
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1401 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
1402 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
1403
27669
5c4ab8d4472c patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents: 27607
diff changeset
1404 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
1405 reloaded = 'first'
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1406 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
1407 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
1408 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1409
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1410 def Once(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1411 return 'once'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1412 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1413 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1414 writefile(lines, 'XReloaded')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1415 g:loadCount = 0
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1416 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1417 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
1418 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
1419 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1420 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
1421 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
1422 source XReloaded
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1423 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
1424 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
1425
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1426 delete('XReloaded')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1427 delete('XExportReload')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1428 delfunc g:Values
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1429 unlet g:loadCount
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1430
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1431 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1432 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1433 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1434 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1435 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1436 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
1437 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1438
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1439 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1440 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1441 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1442 def Inner()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1443 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1444 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1445 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1446 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1447 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
1448 source XreloadScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1449
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1450 delete('XreloadScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1451 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1452
27756
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1453 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
1454 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
1455 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1456
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1457 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
1458 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
1459 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1460 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1461 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1462 Test('a', 'b')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1463 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1464 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1465 # 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
1466 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
1467 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1468 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1469 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1470 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1471 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1472 END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1473 lines->writefile('XreloadScript_1.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1474 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
1475 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
1476 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1477
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1478 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1479 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1480
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1481 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
1482 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
1483 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1484 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1485 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1486 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
1487 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1488 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1489 # 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
1490 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
1491 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1492 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1493 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1494 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1495 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1496 END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1497 lines->writefile('XreloadScript_2.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1498 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
1499 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
1500 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1501
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1502 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1503 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1504
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1505 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
1506 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
1507 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1508 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1509 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1510 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1511 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1512 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1513 # 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
1514 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
1515 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1516 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1517 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1518 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1519 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1520 END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1521 lines->writefile('XreloadScript_3.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1522 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
1523 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
1524 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1525
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1526 lines =<< trim END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1527 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1528
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1529 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
1530 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
1531 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1532 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1533 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1534 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1535 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1536 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1537 # 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
1538 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
1539 echo a b
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1540 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1541 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1542 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1543 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1544 END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1545 lines->writefile('XreloadScript_4.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1546 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
1547 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
1548 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1549
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1550 delete('XreloadScript_1.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1551 delete('XreloadScript_2.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1552 delete('XreloadScript_3.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1553 delete('XreloadScript_4.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1554 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1555
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1556 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
1557 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
1558 vim9script noclear
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1559
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1560 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
1561 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
1562 echo a
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1563 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1564 def Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1565 Test('a')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1566 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1567 else
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1568 # 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
1569 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
1570 echo ax
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1571 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1572 endif
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1573 Call()
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1574 g:didload = 1
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1575 END
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1576 lines->writefile('XreloadScriptErr.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1577 source XreloadScriptErr.vim
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1578 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
1579
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1580 unlet g:didload
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1581 delete('XreloadScriptErr.vim')
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1582 enddef
60ac4228a73d patch 8.2.4404: Vim9: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 27669
diff changeset
1583
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1584 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
1585 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
1586 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1587 const var = ''
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1588 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1589 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
1590 valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1591 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1592 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1593 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
1594 var valtwo = 222
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1595 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
1596 return valtwo
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1597 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1598 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1599 writefile(lines + morelines, 'Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1600 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1601 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1602 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1603
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1604 # 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
1605 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1606 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1607 var valone = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1608 var valone = 5678
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1609 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1610 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
1611 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
1612
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1613 delete('Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1614 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1615 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1616
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1617 " 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
1618 " 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
1619 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
1620 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
1621 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1622 var str = 'string'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1623 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
1624 return str .. 'xxx'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1625 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1626 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1627 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
1628 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1629 echo g:GetStr()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1630
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1631 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1632 vim9script noclear
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1633 var str = 1234
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1634 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1635 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
1636 source Xreload.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1637 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
1638
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1639 delfunc g:GetStr
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1640 delete('Xreload.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1641 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1642
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1643 " 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
1644 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
1645
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1646 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
1647 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
1648 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1649
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1650 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
1651 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1652 endif
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1653 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
1654 delcommand CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1655 command CallFunc Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1656 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1657 so XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1658 g:didTheFunc = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1659 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1660 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1661 writefile(lines, 'XreloadFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1662 source XreloadFunc.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1663 CallFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1664 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
1665
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1666 delete('XreloadFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1667 delcommand CallFunc
28305
c4b2aa8e1ee1 patch 8.2.4678: Vim9: not all code is tested
Bram Moolenaar <Bram@vim.org>
parents: 28261
diff changeset
1668 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
1669 unlet g:didTheFunc
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1670 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1671
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1672 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
1673 return 'some'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1674 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1675
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1676 " 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
1677 " script-local name.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1678 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
1679 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
1680 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1681 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
1682 return i2 - i1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1683 enddef
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 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
1686 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
1687 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1688
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1689 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
1690 return arg
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1691 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1692 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1693 writefile(sortlines, 'Xsort.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1694
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1695 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
1696 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1697 import './Xsort.vim'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1698 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1699 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
1700 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1701 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
1702 END
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
1703 writefile(lines, '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
1704 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
1705 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
1706 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
1707
27030
c8809b8d19de patch 8.2.4044: Vim9: no error when importing the same script twice
Bram Moolenaar <Bram@vim.org>
parents: 27014
diff changeset
1708 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
1709 vim9script
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1710 # 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
1711 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
1712 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
1713
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1714 # 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
1715 def TestMore(): string
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1716 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
1717 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
1718 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1719 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
1720
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1721 # 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
1722 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
1723 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1724 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
1725
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1726 delete('Xsort.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1727 delete('Xscript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1728
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1729 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
1730 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
1731 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1732
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1733 " 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
1734 " 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
1735 " function reference.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1736 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
1737 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
1738 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1739 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
1740 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
1741 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1742 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
1743 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
1744 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1745 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
1746 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
1747 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1748 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1749 writefile(filterLines, 'Xfilter.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1750
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1751 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
1752 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1753 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
1754 def Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1755 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
1756 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1757 Test()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1758 def TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1759 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
1760 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1761 TestDirect()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1762 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1763 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
1764 delete('Xfilter.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1765 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1766
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1767 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
1768 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1769 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1770 '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
1771 'def UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1772 ' 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
1773 ' abs.exported = 8888',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1774 ' 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
1775 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1776 'UseExported()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1777 '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
1778 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1779 writefile(import_lines, 'Ximport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1780 writefile(s:export_script_lines, 'Xexport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1781
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1782 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
1783
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1784 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
1785 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
1786 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
1787 '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
1788 '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
1789 '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
1790 '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
1791 '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
1792 '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
1793 '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
1794 '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
1795 '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
1796 g:import_disassembled)
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1797
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1798 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
1799 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
1800 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
1801
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1802 delete('Ximport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1803 delete('Xexport_abs.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1804 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1805
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1806 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
1807 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1808 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1809 '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
1810 '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
1811 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1812 writefile(import_lines, 'Ximport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1813 mkdir('import', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1814 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
1815
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1816 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
1817 &rtp = getcwd()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1818 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
1819 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1820
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1821 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
1822
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1823 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
1824 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
1825 delete('Ximport_rtp.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1826 delete('import', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1827 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1828
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1829 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
1830 var export_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1831 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1832 '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
1833 ' return notDefined',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1834 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1835 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1836 writefile(export_lines, 'Xexported.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1837
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1838 var import_lines = [
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1839 'vim9script',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1840 '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
1841 'def ImpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1842 ' echo expo.ExpFunc()',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1843 'enddef',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1844 'defcompile',
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1845 ]
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1846 writefile(import_lines, 'Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1847
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1848 try
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1849 source Ximport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1850 catch /E1001/
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1851 # 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
1852 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
1853 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
1854 endtry
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1855
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1856 delete('Xexported.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1857 delete('Ximport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1858 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1859
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1860 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
1861 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
1862 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1863 export def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1864 echo 'imported'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1865 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1866 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1867 writefile(export_lines, 'XexportedFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1868
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1869 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
1870 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1871 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
1872 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1873 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
1874 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1875 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1876 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
1877
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1878 lines =<< trim END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1879 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1880 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
1881 def Outer()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1882 def Func()
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1883 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
1884 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1885 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1886 defcompile
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1887 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
1888 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
1889
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1890 delete('XexportedFunc.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1891 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1892
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1893 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
1894 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
1895 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1896 var local = 'local'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1897 g:global = 'global'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1898 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
1899 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
1900 return 'text'
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1901 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1902 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1903 writefile(vim9_lines, 'Xvim9_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1904
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1905 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
1906 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
1907
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1908 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
1909 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
1910 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
1911 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
1912 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
1913 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1914 writefile(legacy_lines, 'Xlegacy_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1915
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1916 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
1917 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
1918 unlet g:global
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1919
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1920 delete('Xlegacy_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1921 delete('Xvim9_script.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1922 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1923
27112
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1924 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
1925 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
1926 vim9script
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1927 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
1928 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
1929 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
1930 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
1931 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
1932 enddef
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1933 END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1934 writefile(vim9_lines, 'Xvim9_export.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1935
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1936 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
1937 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
1938
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1939 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
1940 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
1941 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
1942 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
1943 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
1944 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
1945 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
1946 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
1947
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1948 " 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
1949 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
1950 call assert_equal('text', s:vim9.GetText())
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1951 END
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1952 writefile(legacy_lines, '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
1953
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1954 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
1955 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
1956 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
1957
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1958 delete('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
1959 delete('Xvim9_export.vim')
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1960 enddef
60df9f2679a6 patch 8.2.4085: Vim9: no test for using import in legacy script
Bram Moolenaar <Bram@vim.org>
parents: 27108
diff changeset
1961
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1962 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
1963 # 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
1964 # the command line window.
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1965 mkdir('rtp/syntax', 'p')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1966 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
1967 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1968 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
1969 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1970 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
1971 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
1972 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1973 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
1974 echo exp.That
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1975 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1976 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
1977 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
1978 &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
1979 syntax on
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1980 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1981 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
1982 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1983 # 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
1984 feedkeys('q:', 'xt')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1985 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
1986
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1987 augroup CmdWin
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1988 au!
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1989 augroup END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1990 &rtp = save_rtp
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1991 delete('rtp', 'rf')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1992 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1993
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1994 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
1995 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
1996 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1997 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
1998 finish
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1999 endif
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2000 g:guard = 1
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2001 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
2002 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2003 writefile(exportlines, 'XexportScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2004
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2005 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
2006 vim9script
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2007 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
2008 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
2009 return expo.name
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2010 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2011 END
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2012 writefile(lines, 'XscriptImport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2013 so XscriptImport.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2014 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
2015
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2016 so XexportScript.vim
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2017 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
2018
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2019 delfunc g:GetName
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2020 delete('XexportScript.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2021 delete('XscriptImport.vim')
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2022 unlet g:guard
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2023 enddef
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2024
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2025 " 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
2026 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
2027 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
2028 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2029 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
2030 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2031 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2032 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
2033 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
2034
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2035 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
2036 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
2037 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2038 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2039
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2040 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2041 writefile(lines, 'Xdir/autoload/some.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2042 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2043 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2044
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2045 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
2046 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
2047 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
2048 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
2049 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
2050
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2051 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
2052
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2053 # 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
2054 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2055 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2056 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
2057 return 'other'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2058 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2059 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2060 writefile(lines, 'Xdir/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
2061 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
2062
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2063 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2064 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2065 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2066
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2067 def Test_vim9script_autoload()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2068 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2069 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2070 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2071
27215
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2072 # 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
2073 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
2074 vim9script
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2075 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
2076
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2077 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
2078 return 'test'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2079 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2080
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2081 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
2082
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2083 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
2084 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
2085 endfunc
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2086
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2087 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
2088 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
2089 enddef
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2090
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2091 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
2092 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
2093 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2094 writefile(lines, 'Xdir/autoload/prefixed.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2095
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2096 g:prefixed_loaded = 0
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2097 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
2098 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2099 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2100 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
2101 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
2102 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
2103 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
2104
27108
92e2e96ff559 patch 8.2.4083: Vim9: no test for "vim9script autoload' using script variable
Bram Moolenaar <Bram@vim.org>
parents: 27106
diff changeset
2105 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
2106 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
2107 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
2108 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
2109 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
2110 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2111 v9.CheckScriptSuccess(lines)
27074
19fefc42a063 patch 8.2.4066: Vim9: imported autoload script loaded again
Bram Moolenaar <Bram@vim.org>
parents: 27068
diff changeset
2112 # 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
2113 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
2114 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
2115
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2116 # 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
2117 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2118 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
2119 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
2120 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
2121 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
2122 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
2123 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2124 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
2125
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2126 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
2127 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
2128 delete('Xdir', 'rf')
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2129 &rtp = save_rtp
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2130 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2131
27217
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2132 def Test_import_autoload_not_exported()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2133 mkdir('Xdir/autoload', 'p')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2134 var save_rtp = &rtp
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2135 exe 'set rtp^=' .. getcwd() .. '/Xdir'
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2136
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2137 # 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
2138 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
2139 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2140 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
2141 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
2142 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
2143 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2144 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2145 writefile(exportLines, 'Xdir/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
2146
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2147 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
2148 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2149 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
2150 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
2151 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2152 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
2153
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2154 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
2155 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2156 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
2157 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
2158 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2159 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
2160
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2161 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
2162 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2163 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
2164 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
2165 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2166 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
2167
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2168 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
2169 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2170 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
2171 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
2172 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2173 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
2174
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2175 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
2176 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2177 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
2178 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
2179 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2180 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
2181
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2182 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
2183 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2184 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
2185 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
2186 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2187 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
2188
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2189 # 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
2190 # the function is compiled without the script loaded
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2191 writefile(exportLines, 'Xdir/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
2192 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
2193 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2194 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
2195 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
2196 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
2197 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2198 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2199 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2200 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
2201
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2202 writefile(exportLines, 'Xdir/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
2203 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
2204 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2205 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
2206 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
2207 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
2208 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2209 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2210 END
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2211 # 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
2212 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
2213
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2214 writefile(exportLines, 'Xdir/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
2215 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
2216 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2217 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
2218 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
2219 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
2220 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2221 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2222 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2223 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
2224
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2225 writefile(exportLines, 'Xdir/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
2226 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
2227 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2228 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
2229 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
2230 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
2231 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2232 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2233 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2234 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
2235
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2236 writefile(exportLines, 'Xdir/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
2237 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
2238 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2239 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
2240 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
2241 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
2242 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2243 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2244 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2245 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
2246
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2247 writefile(exportLines, 'Xdir/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
2248 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
2249 vim9script
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2250 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
2251 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
2252 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
2253 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2254 Testit()
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2255 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2256 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
2257
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2258 delete('Xdir', 'rf')
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2259 &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
2260 enddef
facb54d20a50 patch 8.2.4137: Vim9: calling import with and without method is inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27215
diff changeset
2261
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2262 def Test_vim9script_autoload_call()
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2263 mkdir('Xdir/autoload', 'p')
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2264 var save_rtp = &rtp
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2265 exe 'set rtp^=' .. getcwd() .. '/Xdir'
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2266
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2267 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
2268 vim9script
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2269
27205
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2270 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
2271 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
2272 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2273
27076
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2274 export def Getother()
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2275 g:result = 'other'
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2276 enddef
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2277 END
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
2278 writefile(lines, 'Xdir/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
2279
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2280 lines =<< trim END
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2281 vim9script
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
2282 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
2283
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2284 # 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
2285 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
2286 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
2287 enddef
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2288 CallAnother()
6c177a9b436e patch 8.2.4131: Vim9: calling function in autoload import does not work
Bram Moolenaar <Bram@vim.org>
parents: 27189
diff changeset
2289
27080
9897dd3c6530 patch 8.2.4069: Vim9: import test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 27076
diff changeset
2290 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
2291 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
2292
69aa20a6e7ae patch 8.2.4176: Vim9: cannot use imported function with call()
Bram Moolenaar <Bram@vim.org>
parents: 27291
diff changeset
2293 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
2294
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2295 verbose function another.Getother
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2296 # should we disallow this?
a54064e14114 patch 8.2.4308: Vim9: cannot list autoload function
Bram Moolenaar <Bram@vim.org>
parents: 27499
diff changeset
2297 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
2298 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2299 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
2300
ceff6a546748 patch 8.2.4067: Vim9: cannot call imported function with :call
Bram Moolenaar <Bram@vim.org>
parents: 27074
diff changeset
2301 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
2302 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2303 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2304 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2305
27297
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2306 def Test_vim9script_noclear_autoload()
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2307 mkdir('Xdir/autoload', 'p')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2308 var save_rtp = &rtp
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2309 exe 'set rtp^=' .. getcwd() .. '/Xdir'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2310
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2311 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
2312 vim9script
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2313 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
2314 return 'called'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2315 enddef
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2316 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
2317 END
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2318 writefile(lines, 'Xdir/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
2319
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2320 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
2321 vim9script noclear
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2322 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
2323 finish
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2324 endif
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2325 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
2326
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2327 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
2328 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
2329 END
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2330 g:double_loaded = 'no'
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2331 writefile(lines, 'Xloaddouble')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2332 source Xloaddouble
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2333 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
2334 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
2335 source Xloaddouble
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2336 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
2337 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
2338 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
2339
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2340 delete('Xloaddouble')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2341 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
2342 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
2343 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
2344 delete('Xdir', 'rf')
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2345 &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
2346 enddef
f7cb41ff22a4 patch 8.2.4177: Vim9: autoload script not loaded after "vim9script noclear"
Bram Moolenaar <Bram@vim.org>
parents: 27295
diff changeset
2347
27267
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2348 def Test_vim9script_autoload_duplicate()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2349 mkdir('Xdir/autoload', 'p')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2350
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2351 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
2352 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2353
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2354 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
2355 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2356
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2357 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2358 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2359 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2360 writefile(lines, 'Xdir/autoload/dupfunc.vim')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2361 assert_fails('source Xdir/autoload/dupfunc.vim', 'E1073:')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2362
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2363 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
2364 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2365
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2366 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2367 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2368
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2369 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
2370 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2371 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2372 writefile(lines, 'Xdir/autoload/dup2func.vim')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2373 assert_fails('source Xdir/autoload/dup2func.vim', 'E1073:')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2374
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2375 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
2376 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2377
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2378 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2379 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2380
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2381 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
2382 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2383 writefile(lines, 'Xdir/autoload/dup3func.vim')
28162
6e431b1c51d5 patch 8.2.4606: test fails because of changed error message
Bram Moolenaar <Bram@vim.org>
parents: 27807
diff changeset
2384 assert_fails('source Xdir/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
2385
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2386 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
2387 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2388
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2389 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
2390
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2391 def Func()
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2392 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2393 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2394 writefile(lines, 'Xdir/autoload/dup4func.vim')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2395 assert_fails('source Xdir/autoload/dup4func.vim', 'E707:')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2396
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2397 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
2398 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2399
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2400 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
2401
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2402 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
2403 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2404 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2405 writefile(lines, 'Xdir/autoload/dup5func.vim')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2406 assert_fails('source Xdir/autoload/dup5func.vim', 'E707:')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2407
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2408 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
2409 vim9script
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2410
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2411 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
2412 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2413
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2414 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
2415 END
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2416 writefile(lines, 'Xdir/autoload/dup6func.vim')
28162
6e431b1c51d5 patch 8.2.4606: test fails because of changed error message
Bram Moolenaar <Bram@vim.org>
parents: 27807
diff changeset
2417 assert_fails('source Xdir/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
2418
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2419 delete('Xdir', 'rf')
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2420 enddef
322b79b002b7 patch 8.2.4162: Vim9: no error for redefining function with export
Bram Moolenaar <Bram@vim.org>
parents: 27265
diff changeset
2421
27269
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2422 def Test_autoload_missing_function_name()
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2423 mkdir('Xdir/autoload', 'p')
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2424
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2425 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
2426 vim9script
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2427
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2428 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
2429 enddef
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2430 END
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2431 writefile(lines, 'Xdir/autoload/loadme.vim')
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2432 assert_fails('source Xdir/autoload/loadme.vim', 'E129:')
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2433
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2434 delete('Xdir', 'rf')
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2435 enddef
24da57a079ef patch 8.2.4163: no error for omitting function name after autoload prefix
Bram Moolenaar <Bram@vim.org>
parents: 27267
diff changeset
2436
27464
a14c4d3e3260 patch 8.2.4260: Vim9: can still use a global function without g:
Bram Moolenaar <Bram@vim.org>
parents: 27457
diff changeset
2437 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
2438 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
2439 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
2440 enddef
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2441 END
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2442 writefile(lines, 'Xscriptname.vim')
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2443 v9.CheckScriptFailure(lines, 'E746:')
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2444 delete('Xscriptname.vim')
27291
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2445
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2446 mkdir('Xdir/autoload', 'p')
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2447 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
2448 vim9script
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2449 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
2450 enddef
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2451 END
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2452 writefile(lines, 'Xdir/autoload/somescript.vim')
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2453 assert_fails('source Xdir/autoload/somescript.vim', 'E1263:')
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2454
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2455 delete('Xdir', '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
2456 enddef
0f0fa4d12303 patch 8.2.4174: Vim9: can use an autoload name in normal script
Bram Moolenaar <Bram@vim.org>
parents: 27289
diff changeset
2457
27086
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2458 def Test_import_autoload_postponed()
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2459 mkdir('Xdir/autoload', 'p')
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2460 var save_rtp = &rtp
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2461 exe 'set rtp^=' .. getcwd() .. '/Xdir'
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2462
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2463 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
2464 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
2465
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2466 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
2467 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
2468 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
2469 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
2470 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2471 END
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2472 writefile(lines, 'Xdir/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
2473
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2474 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
2475 vim9script
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2476
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2477 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
2478 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
2479 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
2480 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
2481 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2482 defcompile
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2483 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2484 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
2485 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
2486 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
2487 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
2488
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2489 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
2490 delete('Xdir', 'rf')
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2491 &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
2492 enddef
1e2a6c6c7e42 patch 8.2.4072: Vim9: compiling function fails when autoload is not loaded
Bram Moolenaar <Bram@vim.org>
parents: 27080
diff changeset
2493
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2494 def Test_import_autoload_override()
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2495 mkdir('Xdir/autoload', 'p')
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2496 var save_rtp = &rtp
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2497 exe 'set rtp^=' .. getcwd() .. '/Xdir'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2498 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
2499
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2500 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
2501 vim9script
27116
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2502
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2503 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
2504 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
2505 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
2506 return 'bla'
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2507 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2508 END
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2509 writefile(lines, 'Xdir/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
2510
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2511 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
2512 vim9script
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2513
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2514 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
2515 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
2516
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2517 def Tryit()
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2518 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
2519 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2520 defcompile
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2521 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2522 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
2523
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2524 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
2525 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
2526 delete('Xdir', 'rf')
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2527 &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
2528 enddef
5b267700e6ab patch 8.2.4087: cannot test items from an autoload script easily
Bram Moolenaar <Bram@vim.org>
parents: 27112
diff changeset
2529
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
2530 def Test_autoload_mapping()
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
2531 mkdir('Xdir/autoload', 'p')
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
2532 var save_rtp = &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
2533 exe 'set rtp^=' .. getcwd() .. '/Xdir'
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
2534
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
2535 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
2536 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
2537
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
2538 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
2539
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
2540 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
2541 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
2542 enddef
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2543 export def Doit()
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2544 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
2545 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
2546 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
2547 writefile(lines, 'Xdir/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
2548
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
2549 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
2550 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
2551
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
2552 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
2553
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
2554 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
2555 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
2556 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
2557 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2558 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
2559 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
2560 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
2561 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
2562
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
2563 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
2564 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
2565 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
2566 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
2567
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2568 feedkeys("xx", 'xt')
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2569 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
2570
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2571 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
2572
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
2573 nunmap tt
27140
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2574 nunmap xx
a9eeb18e749c patch 8.2.4099: Vim9: cannot use Vim9 syntax in mapping
Bram Moolenaar <Bram@vim.org>
parents: 27116
diff changeset
2575 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
2576 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
2577 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
2578 delete('Xdir', 'rf')
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
2579 &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
2580 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
2581
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2582 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
2583 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
2584 vim9script autoload
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2585 var n = 0
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2586 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2587 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
2588
5b54f413d132 patch 8.2.4136: Vim9: the "autoload" argument of ":vim9script" is not useful
Bram Moolenaar <Bram@vim.org>
parents: 27213
diff changeset
2589 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
2590 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
2591 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
2592 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2593 v9.CheckScriptFailure(lines, 'E983: Duplicate argument: noclear')
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2594 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2595
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2596 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
2597 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
2598 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2599 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
2600 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2601 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
2602
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2603 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2604 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
2605 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
2606 END
28255
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2607 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
2608
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
2609 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
2610 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
2611 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
2612 END
28255
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2613 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
2614
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2615 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
2616 vim9script
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2617 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
2618 END
48b9ffd40f38 patch 8.2.4653: "import autoload" does not check the file name
Bram Moolenaar <Bram@vim.org>
parents: 28249
diff changeset
2619 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
2620
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
2621 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
2622 vim9script
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2623 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
2624 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2625 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
2626 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2627
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2628 " 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
2629 def Test_vim9_autoload_disass()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2630 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2631 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2632 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2633
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2634 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
2635 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2636 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
2637 return 'debug'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2638 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2639 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2640 writefile(lines, 'Xdir/autoload/debugit.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2641
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2642 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2643 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2644 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
2645 return 'profile'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2646 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2647 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2648 writefile(lines, 'Xdir/autoload/profileit.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2649
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2650 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2651 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2652 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
2653 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
2654 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
2655 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
2656 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2657 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
2658
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2659 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2660 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2661 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2662
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2663 " 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
2664 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
2665 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
2666 vim9script
27472
55613f0d59bc patch 8.2.4264: Vim9: can use old style autoload function name
Bram Moolenaar <Bram@vim.org>
parents: 27464
diff changeset
2667 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
2668 echomsg getreg('"')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2669 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2670 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2671
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2672 mkdir('Xdir/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2673 writefile(lines, 'Xdir/autoload/foo.vim')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2674 var save_rtp = &rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2675 exe 'set rtp^=' .. getcwd() .. '/Xdir'
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2676 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
2677 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
2678 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2679
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2680 normal Y
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2681
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2682 augroup test
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2683 autocmd!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2684 augroup END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2685 delete('Xdir', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2686 &rtp = save_rtp
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2687 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2688
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2689 " 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
2690 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
2691 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
2692 vim9script
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2693 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
2694 return 'done'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2695 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2696 END
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2697
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2698 mkdir('Xdir/autoload', 'p')
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2699 writefile(lines, 'Xdir/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
2700 var save_rtp = &rtp
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2701 exe 'set rtp^=' .. getcwd() .. '/Xdir'
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2702
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2703 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
2704 vim9script
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2705 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
2706 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
2707 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2708 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
2709
27150
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
2710 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
2711 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
2712 vim9script
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
2713 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
2714 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
2715 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2716 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
2717 endif
2d0ea3f9ffe1 patch 8.2.4104: Vim9: lower casing the autoload prefix causes problems
Bram Moolenaar <Bram@vim.org>
parents: 27146
diff changeset
2718
27106
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2719 delete('Xdir', 'rf')
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2720 &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
2721 enddef
d7e6b85dd89d patch 8.2.4082: check for autoload file name and prefix fails
Bram Moolenaar <Bram@vim.org>
parents: 27086
diff changeset
2722
27057
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2723 " 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
2724 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
2725 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
2726 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2727 def crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2728 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2729 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
2730 endfor
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2731 catch
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2732 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2733 g:ok = true
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2734 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2735 fu List()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2736 invalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2737 endfu
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2738 try
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2739 alsoinvalid
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2740 catch /wontmatch/
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2741 endtry
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2742 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2743 call mkdir('Xruntime/autoload', 'p')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2744 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
2745
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2746 # 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
2747 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2748 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
2749 call crash#func()
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2750 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
2751 qall!
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2752 END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2753 writefile(lines, 'Xscript')
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2754 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
2755 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
2756
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2757 delete('Xdidit')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2758 delete('Xscript')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2759 delete('Xruntime', 'rf')
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2760
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2761 lines =<< trim END
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2762 vim9script
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2763 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
2764 END
27457
4c16acb2525f patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents: 27376
diff changeset
2765 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
2766 enddef
8f6cab688901 patch 8.2.4057: Vim9: not fully implementing the autoload mechanism
Bram Moolenaar <Bram@vim.org>
parents: 27030
diff changeset
2767
27014
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2768
b861ae62860d patch 8.2.4036: Vim9: script test file is getting too long
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2769 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker