Mercurial > vim
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 |