patch 9.0.1355: no error when declaring a class twice
Problem: No error when declaring a class twice. (Ernie Rael)
Solution: Pass different flags when declaring the class. (closes #12057)
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index c268dde..87c1d4a 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -164,6 +164,28 @@
v9.CheckScriptSuccess(lines)
enddef
+def Test_class_defined_twice()
+ # class defined twice should fail
+ var lines =<< trim END
+ vim9script
+ class There
+ endclass
+ class There
+ endclass
+ END
+ v9.CheckScriptFailure(lines, 'E1041: Redefining script item: "There"')
+
+ # one class, reload same script twice is OK
+ lines =<< trim END
+ vim9script
+ class There
+ endclass
+ END
+ writefile(lines, 'XclassTwice.vim', 'D')
+ source XclassTwice.vim
+ source XclassTwice.vim
+enddef
+
def Test_class_interface_wrong_end()
var lines =<< trim END
vim9script
@@ -1012,14 +1034,13 @@
this.member: string
endinterface
- class SomeImpl implements Some, Another
+ class AnotherImpl implements Some, Another
this.member = 'abc'
static count: number
def Method(nr: number)
echo nr
enddef
endclass
-
END
v9.CheckScriptSuccess(lines)