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.
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 2f2f62a..ef9ef55 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -627,6 +627,19 @@
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 @@
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