blob: 2ed83085816521fbdf8ff25cc719020e3242e011 [file] [log] [blame]
Bram Moolenaar00b28d62022-12-08 15:32:33 +00001" Test Vim9 classes
2
3source check.vim
4import './vim9.vim' as v9
5
6def Test_class_basic()
7 var lines =<< trim END
8 class NotWorking
9 endclass
10 END
11 v9.CheckScriptFailure(lines, 'E1316:')
12
13 lines =<< trim END
14 vim9script
15 class notWorking
16 endclass
17 END
18 v9.CheckScriptFailure(lines, 'E1314:')
19
20 lines =<< trim END
21 vim9script
22 class Not@working
23 endclass
24 END
25 v9.CheckScriptFailure(lines, 'E1315:')
26
27 lines =<< trim END
28 vim9script
29 abstract noclass Something
30 endclass
31 END
32 v9.CheckScriptFailure(lines, 'E475:')
33
34 lines =<< trim END
35 vim9script
36 abstract classy Something
37 endclass
38 END
39 v9.CheckScriptFailure(lines, 'E475:')
40
41 lines =<< trim END
42 vim9script
43 class Something
44 endcl
45 END
46 v9.CheckScriptFailure(lines, 'E1065:')
47
48 lines =<< trim END
49 vim9script
50 class Something
51 endclass school's out
52 END
53 v9.CheckScriptFailure(lines, 'E488:')
54
55 lines =<< trim END
56 vim9script
57 class Something
58 endclass | echo 'done'
59 END
60 v9.CheckScriptFailure(lines, 'E488:')
61
62 lines =<< trim END
63 vim9script
64 class Something
65 this
66 endclass
67 END
68 v9.CheckScriptFailure(lines, 'E1317:')
69
70 lines =<< trim END
71 vim9script
72 class Something
73 this.
74 endclass
75 END
76 v9.CheckScriptFailure(lines, 'E1317:')
77
78 lines =<< trim END
79 vim9script
80 class Something
81 this .count
82 endclass
83 END
84 v9.CheckScriptFailure(lines, 'E1317:')
85
86 lines =<< trim END
87 vim9script
88 class Something
89 this. count
90 endclass
91 END
92 v9.CheckScriptFailure(lines, 'E1317:')
93
94 lines =<< trim END
95 vim9script
96 class Something
97 this.count: number
98 that.count
99 endclass
100 END
101 v9.CheckScriptFailure(lines, 'E1318: Not a valid command in a class: that.count')
102
103 lines =<< trim END
104 vim9script
105 class Something
106 this.count
107 endclass
108 END
109 v9.CheckScriptFailure(lines, 'E1022:')
110
111 lines =<< trim END
112 vim9script
113 class Something
114 this.count : number
115 endclass
116 END
117 v9.CheckScriptFailure(lines, 'E1059:')
118
119 lines =<< trim END
120 vim9script
121 class Something
122 this.count:number
123 endclass
124 END
125 v9.CheckScriptFailure(lines, 'E1069:')
126
127 lines =<< trim END
128 vim9script
129
130 class TextPosition
131 this.lnum: number
132 this.col: number
Bram Moolenaarffdaca92022-12-09 21:41:48 +0000133
134 def ToString(): string
135 return $'({this.lnum}, {this.col})'
136 enddef
Bram Moolenaar00b28d62022-12-08 15:32:33 +0000137 endclass
138
Bram Moolenaard28d7b92022-12-08 20:42:00 +0000139 # use the automatically generated new() method
140 var pos = TextPosition.new(2, 12)
141 assert_equal(2, pos.lnum)
142 assert_equal(12, pos.col)
Bram Moolenaarffdaca92022-12-09 21:41:48 +0000143
144 # call an object method
145 assert_equal('(2, 12)', pos.ToString())
Bram Moolenaar00b28d62022-12-08 15:32:33 +0000146 END
147 v9.CheckScriptSuccess(lines)
148enddef
149
150
151" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker