comparison src/testdir/test_vim9_class.vim @ 34676:5b25ec43f208 v9.1.0219

patch 9.1.0219: Vim9: No enum support Commit: https://github.com/vim/vim/commit/3164cf8f12f14b725b918e3170bb0a9085af8298 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Thu Mar 28 10:36:42 2024 +0100 patch 9.1.0219: Vim9: No enum support Problem: No enum support Solution: Implement enums for Vim9 script (Yegappan Lakshmanan) closes: #14224 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 28 Mar 2024 10:45:06 +0100
parents 7ff3c277377f
children 529709e74c11
comparison
equal deleted inserted replaced
34675:42bca55140ec 34676:5b25ec43f208
2271 END 2271 END
2272 writefile(imported, 'XdefIntf2.vim', 'D') 2272 writefile(imported, 'XdefIntf2.vim', 'D')
2273 2273
2274 lines[1] = " import './XdefIntf2.vim' as defIntf" 2274 lines[1] = " import './XdefIntf2.vim' as defIntf"
2275 v9.CheckScriptSuccess(lines) 2275 v9.CheckScriptSuccess(lines)
2276 enddef
2277
2278 " Test for using string() with an interface
2279 def Test_interface_to_string()
2280 var lines =<< trim END
2281 vim9script
2282 interface Intf
2283 def Method(nr: number)
2284 endinterface
2285 assert_equal("interface Intf", string(Intf))
2286 END
2287 v9.CheckSourceSuccess(lines)
2276 enddef 2288 enddef
2277 2289
2278 def Test_class_implements_interface() 2290 def Test_class_implements_interface()
2279 var lines =<< trim END 2291 var lines =<< trim END
2280 vim9script 2292 vim9script
10389 assert_equal("aaa", a.s) 10401 assert_equal("aaa", a.s)
10390 END 10402 END
10391 v9.CheckScriptSuccess(lines) 10403 v9.CheckScriptSuccess(lines)
10392 enddef 10404 enddef
10393 10405
10406 " Test for using test_refcount() with a class and an object
10407 def Test_class_object_refcount()
10408 var lines =<< trim END
10409 vim9script
10410 class A
10411 endclass
10412 var a: A = A.new()
10413 assert_equal(2, test_refcount(A))
10414 assert_equal(1, test_refcount(a))
10415 var b = a
10416 assert_equal(2, test_refcount(A))
10417 assert_equal(2, test_refcount(a))
10418 assert_equal(2, test_refcount(b))
10419 END
10420 v9.CheckScriptSuccess(lines)
10421 enddef
10422
10394 " call a lambda function in one object from another object 10423 " call a lambda function in one object from another object
10395 def Test_lambda_invocation_across_classes() 10424 def Test_lambda_invocation_across_classes()
10396 var lines =<< trim END 10425 var lines =<< trim END
10397 vim9script 10426 vim9script
10398 class A 10427 class A
10418 assert_equal("foo", Fn()) 10447 assert_equal("foo", Fn())
10419 END 10448 END
10420 v9.CheckScriptSuccess(lines) 10449 v9.CheckScriptSuccess(lines)
10421 enddef 10450 enddef
10422 10451
10452 " Test for using a class member which is an object of the current class
10453 def Test_current_class_object_class_member()
10454 var lines =<< trim END
10455 vim9script
10456 class A
10457 public static var obj1: A = A.new(10)
10458 var n: number
10459 endclass
10460 defcompile
10461 assert_equal(10, A.obj1.n)
10462 END
10463 v9.CheckScriptSuccess(lines)
10464 enddef
10465
10423 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker 10466 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker