Mercurial > vim
annotate src/testdir/test_vim9_typealias.vim @ 33933:aceaf677dd92 v9.0.2163
patch 9.0.2163: Vim9: type can be assigned to list/dict
Commit: https://github.com/vim/vim/commit/fa831102c38c9192edf3aaf0cbcaff9ee5e006ac
Author: Ernie Rael <errael@raelity.com>
Date: Thu Dec 14 20:06:39 2023 +0100
patch 9.0.2163: Vim9: type can be assigned to list/dict
Problem: Vim9: type can be assigned to list/dict
Solution: Prevent assigning a `type` to a `list` or `dict`
closes: #13683
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Dec 2023 20:15:08 +0100 |
parents | ccdb948c7273 |
children | bdd408288d95 |
rev | line source |
---|---|
33687
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Test Vim9 type aliases |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 source check.vim |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 import './vim9.vim' as v9 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 " Test for :type command to create type aliases |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 def Test_typealias() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 # Use type alias at script level |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 type ListOfStrings = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 def Foo(a: ListOfStrings): ListOfStrings |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 return a |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 var b: ListOfStrings = ['a', 'b'] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 assert_equal(['a', 'b'], b) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 assert_equal(['e', 'f'], Foo(['e', 'f'])) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 assert_equal('typealias<list<string>>', typename(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 assert_equal(v:t_typealias, type(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 assert_equal('ListOfStrings', string(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 assert_equal(false, null == ListOfStrings) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 # Use type alias at def function level |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 type ListOfStrings = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 def Foo(a: ListOfStrings): ListOfStrings |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 return a |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 def Bar() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 var c: ListOfStrings = ['c', 'd'] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 assert_equal(['c', 'd'], c) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 assert_equal(['e', 'f'], Foo(['e', 'f'])) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 assert_equal('typealias<list<string>>', typename(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 assert_equal(v:t_typealias, type(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 assert_equal('ListOfStrings', string(ListOfStrings)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 assert_equal(false, null == ListOfStrings) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 Bar() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 # Use :type outside a Vim9 script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 type Index = number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 v9.CheckSourceFailure(lines, 'E1393: Type can only be defined in Vim9 script', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 # Use :type without any arguments |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 type |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 v9.CheckSourceFailure(lines, 'E1397: Missing type alias name', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 # Use :type with a name but no type |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 type MyType |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
63 v9.CheckSourceFailure(lines, "E398: Missing '=': ", 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
65 # Use :type with a name but no type following "=" |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
66 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
67 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
68 type MyType = |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
69 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
70 v9.CheckSourceFailure(lines, 'E1398: Missing type alias type', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
71 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 # No space before or after "=" |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
73 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
74 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 type MyType=number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
76 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
77 v9.CheckSourceFailure(lines, 'E1315: White space required after name: MyType=number', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
78 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
79 # No space after "=" |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
80 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
81 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
82 type MyType =number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
83 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
84 v9.CheckSourceFailure(lines, "E1069: White space required after '=': =number", 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
85 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 # type alias without "=" |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
87 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
88 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
89 type Index number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
90 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
91 v9.CheckSourceFailure(lines, "E398: Missing '=': number", 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
92 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
93 # type alias for a non-existing type |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
94 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
95 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
96 type Index = integer |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
97 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
98 v9.CheckSourceFailure(lines, 'E1010: Type not recognized: integer', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
99 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
100 # type alias starting with lower-case letter |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
101 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
102 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
103 type index = number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
104 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
105 v9.CheckSourceFailure(lines, 'E1394: Type name must start with an uppercase letter: index = number', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
106 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
107 # No white space following the alias name |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
108 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
109 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
110 type Index:number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
111 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
112 v9.CheckSourceFailure(lines, 'E1315: White space required after name: Index:number', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
113 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
114 # something following the type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
115 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
116 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
117 type ListOfNums = list<number> string |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
118 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
119 v9.CheckSourceFailure(lines, 'E488: Trailing characters: string', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
120 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
121 # type alias name collides with a variable name |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
122 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
123 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
124 var ListOfNums: number = 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
125 type ListOfNums = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
126 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
127 v9.CheckSourceFailure(lines, 'E1041: Redefining script item: "ListOfNums"', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
128 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
129 # duplicate type alias name |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
130 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
131 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
132 type MyList = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
133 type MyList = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
134 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
135 v9.CheckSourceFailure(lines, 'E1396: Type alias "MyList" already exists', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
136 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
137 # def function argument name collision with a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
138 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
139 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
140 type A = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
141 def Foo(A: number) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
142 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
143 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
144 v9.CheckSourceFailure(lines, 'E1168: Argument already declared in the script: A: number)', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
145 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
146 # def function local variable name collision with a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
147 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
148 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
149 type A = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
150 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
151 var A: number = 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
152 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
153 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
154 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
155 v9.CheckSourceFailure(lines, 'E1054: Variable already declared in the script: A', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
156 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
157 # type alias a variable |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
158 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
159 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
160 var A: list<number> = [] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
161 type B = A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
162 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
163 v9.CheckSourceFailure(lines, 'E1010: Type not recognized: A', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
164 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
165 # type alias a class |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
166 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
167 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
168 class C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
169 endclass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
170 type AC = C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
171 assert_equal('class<C>', typename(AC)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
172 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
173 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
174 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
175 # Sourcing a script twice (which will free script local variables) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
176 # Uses "lines" from the previous test |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
177 new |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
178 setline(1, lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
179 :source |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
180 :source |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
181 bw! |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
182 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
183 # type alias a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
184 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
185 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
186 type A = string |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
187 type B = A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
188 var b: B = 'abc' |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
189 assert_equal('abc', b) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
190 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
191 var c: B = 'def' |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
192 assert_equal('def', c) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
193 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
194 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
195 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
196 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
197 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
198 # Assigning to a type alias (script level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
199 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
200 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
201 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
202 MyType = [1, 2, 3] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
203 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
204 v9.CheckSourceFailure(lines, 'E1395: Type alias "MyType" cannot be modified', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
205 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
206 # Assigning a type alias (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
207 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
208 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
209 type A = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
210 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
211 var x = A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
212 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
213 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
214 END |
33924
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
215 v9.CheckSourceFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) |
33687
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
216 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
217 # Using type alias in an expression (script level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
218 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
219 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
220 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
221 assert_fails('var m = MyType', 'E1403: Type alias "MyType" cannot be used as a value') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
222 assert_fails('var i = MyType + 1', 'E1400: Using type alias "MyType" as a Number') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
223 assert_fails('var f = 1.0 + MyType', 'E1400: Using type alias "MyType" as a Number') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
224 assert_fails('MyType += 10', 'E1395: Type alias "MyType" cannot be modified') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
225 assert_fails('var x = $"-{MyType}-"', 'E1402: Using type alias "MyType" as a String') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
226 assert_fails('var x = MyType[1]', 'E909: Cannot index a special variable') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
227 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
228 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
229 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
230 # Using type alias in an expression (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
231 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
232 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
233 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
234 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
235 var x = MyType + 1 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
236 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
237 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
238 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
239 v9.CheckSourceFailure(lines, 'E1051: Wrong argument type for +', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
240 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
241 # Using type alias in an expression (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
242 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
243 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
244 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
245 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
246 MyType = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
247 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
248 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
249 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
250 v9.CheckSourceFailure(lines, 'E46: Cannot change read-only variable "MyType"', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
251 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
252 # Using type alias in an expression (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
253 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
254 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
255 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
256 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
257 MyType += 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
258 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
259 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
260 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
261 v9.CheckSourceFailure(lines, 'E46: Cannot change read-only variable "MyType"', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
262 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
263 # Convert type alias to a string (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
264 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
265 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
266 type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
267 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
268 var x = $"-{MyType}-" |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
269 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
270 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
271 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
272 v9.CheckSourceFailure(lines, 'E1105: Cannot convert typealias to string', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
273 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
274 # Using type alias as a float |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
275 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
276 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
277 type B = number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
278 sort([1.1, B], 'f') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
279 END |
33933
aceaf677dd92
patch 9.0.2163: Vim9: type can be assigned to list/dict
Christian Brabandt <cb@256bit.org>
parents:
33924
diff
changeset
|
280 v9.CheckSourceFailure(lines, 'E1403: Type alias "B" cannot be used as a value', 3) |
33687
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
281 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
282 # Creating a typealias in a def function |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
283 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
284 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
285 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
286 var n: number = 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
287 type A = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
288 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
289 defcompile |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
290 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
291 v9.CheckSourceFailure(lines, 'E1399: Type can only be used in a script', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
292 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
293 # json_encode should fail with a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
294 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
295 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
296 type A = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
297 var x = json_encode(A) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
298 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
299 v9.CheckSourceFailure(lines, 'E1161: Cannot json encode a typealias', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
300 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
301 # Comparing type alias with a number (script level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
302 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
303 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
304 type A = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
305 var n: number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
306 var x = A == n |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
307 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
308 v9.CheckSourceFailure(lines, 'E1072: Cannot compare typealias with number', 4) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
309 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
310 # Comparing type alias with a number (def function level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
311 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
312 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
313 type A = list<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
314 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
315 var n: number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
316 var x = A == n |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
317 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
318 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
319 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
320 v9.CheckSourceFailure(lines, 'E1072: Cannot compare typealias with number', 2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
321 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
322 # casting a number to a type alias (script level) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
323 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
324 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
325 type MyType = bool |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
326 assert_equal(true, <MyType>1 == true) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
327 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
328 v9.CheckSourceSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
329 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
330 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
331 " Test for exporting and importing type aliases |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
332 def Test_typealias_import() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
333 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
334 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
335 export type MyType = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
336 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
337 writefile(lines, 'Xtypeexport.vim', 'D') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
338 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
339 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
340 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
341 import './Xtypeexport.vim' as A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
342 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
343 var myList: A.MyType = [1, 2, 3] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
344 def Foo(l: A.MyType) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
345 assert_equal([1, 2, 3], l) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
346 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
347 Foo(myList) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
348 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
349 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
350 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
351 # Use a non existing type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
352 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
353 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
354 import './Xtypeexport.vim' as A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
355 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
356 var myNum: A.SomeType = 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
357 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
358 v9.CheckScriptFailure(lines, 'E1010: Type not recognized: A.SomeType = 10', 4) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
359 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
360 # Use a type alias that is not exported |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
361 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
362 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
363 type NewType = dict<string> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
364 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
365 writefile(lines, 'Xtypeexport2.vim', 'D') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
366 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
367 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
368 import './Xtypeexport2.vim' as A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
369 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
370 var myDict: A.NewType = {} |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
371 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
372 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NewType', 4) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
373 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
374 # Using the same name as an imported type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
375 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
376 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
377 export type MyType2 = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
378 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
379 writefile(lines, 'Xtypeexport3.vim', 'D') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
380 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
381 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
382 import './Xtypeexport3.vim' as A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
383 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
384 type MyType2 = A.MyType2 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
385 var myList1: A.MyType2 = [1, 2, 3] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
386 var myList2: MyType2 = [4, 5, 6] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
387 assert_equal([1, 2, 3], myList1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
388 assert_equal([4, 5, 6], myList2) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
389 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
390 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
391 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
392 # Using an exported class to create a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
393 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
394 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
395 export class MyClass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
396 this.val = 10 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
397 endclass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
398 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
399 writefile(lines, 'Xtypeexport4.vim', 'D') |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
400 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
401 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
402 import './Xtypeexport4.vim' as T |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
403 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
404 type MyType3 = T.MyClass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
405 var c: MyType3 = MyType3.new() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
406 assert_equal(10, c.val) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
407 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
408 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
409 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
410 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
411 " Test for using typealias as a def function argument and return type |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
412 def Test_typealias_func_argument() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
413 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
414 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
415 type A = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
416 def Foo(l: A): A |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
417 assert_equal([1, 2], l) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
418 return l |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
419 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
420 var x: A = [1, 2] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
421 assert_equal([1, 2], Foo(x)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
422 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
423 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
424 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
425 # passing a type alias variable to a function expecting a specific type |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
426 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
427 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
428 type A = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
429 def Foo(l: list<number>) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
430 assert_equal([1, 2], l) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
431 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
432 var x: A = [1, 2] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
433 Foo(x) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
434 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
435 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
436 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
437 # passing a type alias variable to a function expecting any |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
438 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
439 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
440 type A = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
441 def Foo(l: any) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
442 assert_equal([1, 2], l) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
443 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
444 var x: A = [1, 2] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
445 Foo(x) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
446 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
447 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
448 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
449 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
450 " Using a type alias with a builtin function |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
451 def Test_typealias_with_builtin_functions() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
452 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
453 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
454 type A = list<func> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
455 assert_equal(0, empty(A)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
456 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
457 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
458 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
459 # Using a type alias with len() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
460 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
461 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
462 type A = list<func> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
463 var x = len(A) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
464 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
465 v9.CheckScriptFailure(lines, 'E701: Invalid type for len()', 3) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
466 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
467 # Using a type alias with len() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
468 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
469 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
470 type A = list<func> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
471 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
472 var x = len(A) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
473 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
474 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
475 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
476 v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list<any> but got typealias', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
477 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
478 # Using a type alias with eval() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
479 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
480 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
481 type A = number |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
482 def Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
483 var x = eval("A") |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
484 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
485 Foo() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
486 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
487 v9.CheckScriptFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 1) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
488 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
489 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
490 " Test for type alias refcount |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
491 def Test_typealias_refcount() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
492 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
493 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
494 type A = list<func> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
495 assert_equal(1, test_refcount(A)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
496 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
497 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
498 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
499 lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
500 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
501 type B = list<number> |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
502 var x: B = [] |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
503 assert_equal(1, test_refcount(B)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
504 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
505 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
506 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
507 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
508 " Test for using instanceof() with a type alias |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
509 def Test_typealias_instanceof() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
510 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
511 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
512 class C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
513 endclass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
514 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
515 type Ctype = C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
516 var o = C.new() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
517 assert_equal(1, instanceof(o, Ctype)) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
518 type Ntype = number |
33924
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
519 assert_fails('instanceof(o, Ntype)', 'E693: Class or class typealias required for argument 2') |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
520 assert_fails('instanceof(o, Ctype, Ntype)', 'E693: Class or class typealias required for argument 3') |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
521 |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
522 def F() |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
523 var x = instanceof(o, Ntype) |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
524 enddef |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
525 assert_fails('F()', 'E693: Class or class typealias required for argument 2') |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
526 |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
527 def G(): bool |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
528 return instanceof(o, Ctype) |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
529 enddef |
ccdb948c7273
patch 9.0.2160: instanceof() should use varargs as second arg
Christian Brabandt <cb@256bit.org>
parents:
33913
diff
changeset
|
530 assert_equal(1, G()) |
33687
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
531 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
532 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
533 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
534 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
535 " Test for type aliasing a class |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
536 def Test_typealias_class() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
537 var lines =<< trim END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
538 vim9script |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
539 class C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
540 this.color = 'green' |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
541 endclass |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
542 type MyClass = C |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
543 var o: MyClass = MyClass.new() |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
544 assert_equal('green', o.color) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
545 END |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
546 v9.CheckScriptSuccess(lines) |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
547 enddef |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
548 |
9a932ba43f6e
patch 9.0.2080: vim9_script test too large
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
549 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |