patch 9.0.2182: Vim9: need a way to reserve future extension

Problem:  Vim9: need a way to reserve future extension
Solution: reserve double underscore prefix for future use
          (Yegappan Lakshmanan)

related: #13238
closes: #13742

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index c28716a..e2c61b0 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -9659,4 +9659,31 @@
   v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3)
 enddef
 
+" Test for using double underscore prefix in a class/object method name.
+def Test_method_double_underscore_prefix()
+  # class method
+  var lines =<< trim END
+    vim9script
+    class A
+      static def __foo()
+        echo "foo"
+      enddef
+    endclass
+    defcompile
+  END
+  v9.CheckSourceFailure(lines, 'E1034: Cannot use reserved name __foo()', 3)
+
+  # object method
+  lines =<< trim END
+    vim9script
+    class A
+      def __foo()
+        echo "foo"
+      enddef
+    endclass
+    defcompile
+  END
+  v9.CheckSourceFailure(lines, 'E1034: Cannot use reserved name __foo()', 3)
+enddef
+
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker