mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.1.0136: Vim9: need more test for exists()
methods Problem: Vim9: need more test for exists() Solution: Add test for exists() with class/objct variables and methods (Yegappan Lakshmanan) closes: #14088 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
374e26aba2
commit
a2ebb6e917
@ -1,4 +1,4 @@
|
|||||||
*builtin.txt* For Vim version 9.1. Last change: 2024 Feb 24
|
*builtin.txt* For Vim version 9.1. Last change: 2024 Feb 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -2405,11 +2405,11 @@ exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
|
|||||||
varname internal variable (see
|
varname internal variable (see
|
||||||
dict.key |internal-variables|). Also works
|
dict.key |internal-variables|). Also works
|
||||||
list[i] for |curly-braces-names|, |Dictionary|
|
list[i] for |curly-braces-names|, |Dictionary|
|
||||||
import.Func entries, |List| items, imported
|
import.Func entries, |List| items, class and
|
||||||
items, etc.
|
class.Func object methods, imported items, etc.
|
||||||
Does not work for local variables in a
|
object.Func Does not work for local variables in a
|
||||||
compiled `:def` function.
|
class.varname compiled `:def` function.
|
||||||
Also works for a function in |Vim9|
|
object.varname Also works for a function in |Vim9|
|
||||||
script, since it can be used as a
|
script, since it can be used as a
|
||||||
function reference.
|
function reference.
|
||||||
Beware that evaluating an index may
|
Beware that evaluating an index may
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
" Tests for the exists() function
|
" Tests for the exists() function
|
||||||
|
|
||||||
|
import './vim9.vim' as v9
|
||||||
|
|
||||||
func Test_exists()
|
func Test_exists()
|
||||||
augroup myagroup
|
augroup myagroup
|
||||||
autocmd! BufEnter *.my echo "myfile edited"
|
autocmd! BufEnter *.my echo "myfile edited"
|
||||||
@ -334,4 +336,51 @@ func Test_exists_funcarg()
|
|||||||
call FuncArg_Tests("arg1", "arg2")
|
call FuncArg_Tests("arg1", "arg2")
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for using exists() with class and object variables and methods.
|
||||||
|
func Test_exists_class_object()
|
||||||
|
let lines =<< trim END
|
||||||
|
vim9script
|
||||||
|
class A
|
||||||
|
var var1: number = 10
|
||||||
|
static var var2: number = 10
|
||||||
|
static def Foo()
|
||||||
|
enddef
|
||||||
|
def Bar()
|
||||||
|
enddef
|
||||||
|
endclass
|
||||||
|
|
||||||
|
assert_equal(1, exists("A"))
|
||||||
|
var a = A.new()
|
||||||
|
assert_equal(1, exists("a"))
|
||||||
|
|
||||||
|
assert_equal(1, exists("a.var1"))
|
||||||
|
assert_fails('exists("a.var2")', 'E1375: Class variable "var2" accessible only using class "A"')
|
||||||
|
assert_fails('exists("a.var3")', 'E1326: Variable "var3" not found in object "A"')
|
||||||
|
assert_equal(1, exists("A.var2"))
|
||||||
|
assert_fails('exists("A.var1")', 'E1376: Object variable "var1" accessible only using class "A" object')
|
||||||
|
assert_fails('exists("A.var3")', 'E1337: Class variable "var3" not found in class "A"')
|
||||||
|
|
||||||
|
assert_equal(1, exists("a.Bar"))
|
||||||
|
assert_fails('exists("a.Barz")', 'E1326: Variable "Barz" not found in object "A"')
|
||||||
|
assert_fails('exists("a.Foo")', 'E1326: Variable "Foo" not found in object "A"')
|
||||||
|
assert_equal(1, exists("A.Foo"))
|
||||||
|
assert_fails('exists("A.Bar")', 'E1337: Class variable "Bar" not found in class "A"')
|
||||||
|
assert_fails('exists("A.Barz")', 'E1337: Class variable "Barz" not found in class "A"')
|
||||||
|
|
||||||
|
def Baz()
|
||||||
|
assert_equal(1, exists("A"))
|
||||||
|
var aa = A.new()
|
||||||
|
assert_equal(1, exists("A.var2"))
|
||||||
|
assert_fails('exists("A.var1")', 'E1376: Object variable "var1" accessible only using class "A" object')
|
||||||
|
assert_fails('exists("A.var3")', 'E1337: Class variable "var3" not found in class "A"')
|
||||||
|
|
||||||
|
assert_equal(1, exists("A.Foo"))
|
||||||
|
assert_fails('exists("A.Bar")', 'E1337: Class variable "Bar" not found in class "A"')
|
||||||
|
assert_fails('exists("A.Barz")', 'E1337: Class variable "Barz" not found in class "A"')
|
||||||
|
enddef
|
||||||
|
Baz()
|
||||||
|
END
|
||||||
|
call v9.CheckSourceSuccess(lines)
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
136,
|
||||||
/**/
|
/**/
|
||||||
135,
|
135,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user