diff src/testdir/test_vim9_class.vim @ 31649:520857d1fda7 v9.0.1157

patch 9.0.1157: "implements" only handles one interface name Commit: https://github.com/vim/vim/commit/df8f9473596c8fb18ec893de677dba455e8925b3 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 7 14:51:03 2023 +0000 patch 9.0.1157: "implements" only handles one interface name Problem: "implements" only handles one interface name. Solution: Handle a comma separated list of names. Check for duplicate names.
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Jan 2023 16:00:05 +0100
parents fc259e8db5bf
children ec76f9d2319e
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -627,6 +627,19 @@ def Test_class_implements_interface()
           echo nr
         enddef
       endclass
+
+      interface Another
+        this.member: string
+      endinterface
+
+      class SomeImpl implements Some, Another
+        this.member = 'abc'
+        static count: number
+        def Method(nr: number)
+          echo nr
+        enddef
+      endclass
+
   END
   v9.CheckScriptSuccess(lines)
 
@@ -635,6 +648,32 @@ def Test_class_implements_interface()
 
       interface Some
         static counter: number
+      endinterface
+
+      class SomeImpl implements Some implements Some
+        static count: number
+      endclass
+  END
+  v9.CheckScriptFailure(lines, 'E1350:')
+
+  lines =<< trim END
+      vim9script
+
+      interface Some
+        static counter: number
+      endinterface
+
+      class SomeImpl implements Some, Some
+        static count: number
+      endclass
+  END
+  v9.CheckScriptFailure(lines, 'E1351: Duplicate interface after "implements": Some')
+
+  lines =<< trim END
+      vim9script
+
+      interface Some
+        static counter: number
         def Method(nr: number)
       endinterface