patch 9.0.1249: cannot export an abstract class
Problem: Cannot export an abstract class. (Ernie Rael)
Solution: Add the EX_EXPORT flag to :abstract. (closes #11884)
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 5edd511..a496b6d 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -164,6 +164,24 @@
v9.CheckScriptSuccess(lines)
enddef
+def Test_class_interface_wrong_end()
+ var lines =<< trim END
+ vim9script
+ abstract class SomeName
+ this.member = 'text'
+ endinterface
+ END
+ v9.CheckScriptFailure(lines, 'E476: Invalid command: endinterface, expected endclass')
+
+ lines =<< trim END
+ vim9script
+ export interface AnotherName
+ this.member: string
+ endclass
+ END
+ v9.CheckScriptFailure(lines, 'E476: Invalid command: endclass, expected endinterface')
+enddef
+
def Test_class_member_initializer()
var lines =<< trim END
vim9script
@@ -845,6 +863,20 @@
enddef
END
v9.CheckScriptSuccess(lines)
+
+ var imported =<< trim END
+ vim9script
+ export abstract class EnterExit
+ def Enter(): void
+ enddef
+ def Exit(): void
+ enddef
+ endclass
+ END
+ writefile(imported, 'XdefIntf2.vim', 'D')
+
+ lines[1] = " import './XdefIntf2.vim' as defIntf"
+ v9.CheckScriptSuccess(lines)
enddef
def Test_class_implements_interface()