comparison src/testdir/test_vim9_class.vim @ 31833:3516e35f409f v9.0.1249

patch 9.0.1249: cannot export an abstract class Commit: https://github.com/vim/vim/commit/657aea7fc47fb919ce76fad64ba0ec55a1af80f1 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jan 27 13:16:19 2023 +0000 patch 9.0.1249: cannot export an abstract class Problem: Cannot export an abstract class. (Ernie Rael) Solution: Add the EX_EXPORT flag to :abstract. (closes https://github.com/vim/vim/issues/11884)
author Bram Moolenaar <Bram@vim.org>
date Fri, 27 Jan 2023 14:30:04 +0100
parents 554bd03ff609
children 5ce5d78afcc9
comparison
equal deleted inserted replaced
31832:b8c29a701f66 31833:3516e35f409f
160 assert_equal(v:t_object, type(pos)) 160 assert_equal(v:t_object, type(pos))
161 assert_equal('class<TextPosition>', typename(TextPosition)) 161 assert_equal('class<TextPosition>', typename(TextPosition))
162 assert_equal('object<TextPosition>', typename(pos)) 162 assert_equal('object<TextPosition>', typename(pos))
163 END 163 END
164 v9.CheckScriptSuccess(lines) 164 v9.CheckScriptSuccess(lines)
165 enddef
166
167 def Test_class_interface_wrong_end()
168 var lines =<< trim END
169 vim9script
170 abstract class SomeName
171 this.member = 'text'
172 endinterface
173 END
174 v9.CheckScriptFailure(lines, 'E476: Invalid command: endinterface, expected endclass')
175
176 lines =<< trim END
177 vim9script
178 export interface AnotherName
179 this.member: string
180 endclass
181 END
182 v9.CheckScriptFailure(lines, 'E476: Invalid command: endclass, expected endinterface')
165 enddef 183 enddef
166 184
167 def Test_class_member_initializer() 185 def Test_class_member_initializer()
168 var lines =<< trim END 186 var lines =<< trim END
169 vim9script 187 vim9script
843 ee.Exit() 861 ee.Exit()
844 endtry 862 endtry
845 enddef 863 enddef
846 END 864 END
847 v9.CheckScriptSuccess(lines) 865 v9.CheckScriptSuccess(lines)
866
867 var imported =<< trim END
868 vim9script
869 export abstract class EnterExit
870 def Enter(): void
871 enddef
872 def Exit(): void
873 enddef
874 endclass
875 END
876 writefile(imported, 'XdefIntf2.vim', 'D')
877
878 lines[1] = " import './XdefIntf2.vim' as defIntf"
879 v9.CheckScriptSuccess(lines)
848 enddef 880 enddef
849 881
850 def Test_class_implements_interface() 882 def Test_class_implements_interface()
851 var lines =<< trim END 883 var lines =<< trim END
852 vim9script 884 vim9script