diff options
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_class.vim | 52 | ||||
-rw-r--r-- | src/testdir/test_vim9_enum.vim | 11 | ||||
-rw-r--r-- | src/testdir/test_vim9_typealias.vim | 8 |
3 files changed, 70 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 5957f57ae1..bd06c6e286 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -67,6 +67,42 @@ def Test_class_basic() END v9.CheckSourceFailure(lines, "E488: Trailing characters: | echo 'done'", 3) + # Additional command after "class name" + lines =<< trim END + vim9script + class Something | var x = 10 + endclass + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var x = 10", 2) + + # Additional command after "object variable" + lines =<< trim END + vim9script + class Something + var l: list<number> = [] | var y = 10 + endclass + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var y = 10", 3) + + # Additional command after "class variable" + lines =<< trim END + vim9script + class Something + static var d = {a: 10} | var y = 10 + endclass + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var y = 10", 3) + + # Additional command after "object method" + lines =<< trim END + vim9script + class Something + def Foo() | var y = 10 + enddef + endclass + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var y = 10", 3) + # Try to define a class with the same name as an existing variable lines =<< trim END vim9script @@ -2237,6 +2273,14 @@ def Test_interface_basics() END v9.CheckSourceFailure(lines, 'E1345: Not a valid command in an interface: return 5', 6) + # Additional commands after "interface name" + lines =<< trim END + vim9script + interface Something | var x = 10 | var y = 20 + endinterface + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var x = 10", 2) + lines =<< trim END vim9script export interface EnterExit @@ -3233,6 +3277,14 @@ def Test_abstract_class() END v9.CheckSourceFailure(lines, 'E1316: Class can only be defined in Vim9 script', 1) + # Additional commands after "abstract class" + lines =<< trim END + vim9script + abstract class Something | var x = [] + endclass + END + v9.CheckSourceFailure(lines, "E488: Trailing characters: | var x = []", 2) + # Abstract class cannot have a "new" function lines =<< trim END vim9script diff --git a/src/testdir/test_vim9_enum.vim b/src/testdir/test_vim9_enum.vim index 274b556b77..bc54bee3a9 100644 --- a/src/testdir/test_vim9_enum.vim +++ b/src/testdir/test_vim9_enum.vim @@ -97,7 +97,16 @@ def Test_enum_parse() vim9script enum Something | endenum END - v9.CheckSourceFailure(lines, 'E1420: Missing :endenum', 3) + v9.CheckSourceFailure(lines, 'E488: Trailing characters: | endenum', 2) + + # another command follows the enum name + lines =<< trim END + vim9script + enum Something | var x = 10 + Foo + endenum + END + v9.CheckSourceFailure(lines, 'E488: Trailing characters: | var x = 10', 2) # Try to define an enum with the same name as an existing variable lines =<< trim END diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index 998079cf6f..cf540c2306 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -172,6 +172,14 @@ def Test_typealias() END v9.CheckSourceSuccess(lines) + # another command follows a type alias + lines =<< trim END + vim9script + type MyType = number | var x = 20 + assert_equal(20, x) + END + v9.CheckSourceSuccess(lines) + # Sourcing a script twice (which will free script local variables) # Uses "lines" from the previous test new |