1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
vim9script
# Vim9 this and super keywords
# VIM_TEST_SETUP hi link vim9Super Todo
# VIM_TEST_SETUP hi link vim9This Todo
# See: https://github.com/vim/vim/pull/16476#issuecomment-2638191110
class A
var _value: any
def new(value: any)
this._BaseInit(value)
enddef
def _BaseInit(value: any)
this._value = value
enddef
def Value(): any
return this._value
enddef
endclass
class B extends A
def new(value: number)
super._BaseInit(value)
enddef
def Value(): number
echo this
return super._value
enddef
endclass
class C extends A
#### E117
# def new(value: string)
# super(value)
# enddef
#### E1034
# def new(super._value)
# enddef
#### E1034
# def new(value: string)
# super._value = value
# enddef
#### E1356
# def Super(): A
# return super
# enddef
def This(): C
return this
enddef
endclass
echo 1 == A.new(1).Value()
echo 2 == B.new(2).Value()
defcompile C
|