0
0
mirror of https://github.com/vim/vim.git synced 2025-10-03 05:14:07 -04:00

patch 9.0.1179: not all errors around inheritance are tested

Problem:    Not all errors around inheritance are tested.
Solution:   Add more tests.  Fix uncovered problems.
This commit is contained in:
Bram Moolenaar
2023-01-11 17:59:38 +00:00
parent 58b40092e6
commit 6aa0937fb8
5 changed files with 82 additions and 6 deletions

View File

@@ -838,6 +838,63 @@ def Test_class_extends()
assert_equal('John: 42', o.ToString())
END
v9.CheckScriptSuccess(lines)
lines =<< trim END
vim9script
class Child
this.age: number
def ToString(): number
return this.age
enddef
def ToString(): string
return this.age
enddef
endclass
END
v9.CheckScriptFailure(lines, 'E1355: Duplicate function: ToString')
lines =<< trim END
vim9script
class Child
this.age: number
def ToString(): string
return super .ToString() .. ': ' .. this.age
enddef
endclass
var o = Child.new(42)
echo o.ToString()
END
v9.CheckScriptFailure(lines, 'E1356:')
lines =<< trim END
vim9script
class Base
this.name: string
def ToString(): string
return this.name
enddef
endclass
var age = 42
def ToString(): string
return super.ToString() .. ': ' .. age
enddef
echo ToString()
END
v9.CheckScriptFailure(lines, 'E1357:')
lines =<< trim END
vim9script
class Child
this.age: number
def ToString(): string
return super.ToString() .. ': ' .. this.age
enddef
endclass
var o = Child.new(42)
echo o.ToString()
END
v9.CheckScriptFailure(lines, 'E1358:')
enddef