diff src/testdir/test_vim9_class.vim @ 31704:69ee530cac28 v9.0.1184

patch 9.0.1184: interface of an object is not recognized when checking type Commit: https://github.com/vim/vim/commit/a94bd9d9396183eb7781f8d6a5a0e6e97442e9ed Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jan 12 15:01:32 2023 +0000 patch 9.0.1184: interface of an object is not recognized when checking type Problem: Interface of an object is not recognized when checking type. Solution: Use the interface implemented by an object.
author Bram Moolenaar <Bram@vim.org>
date Thu, 12 Jan 2023 16:15:04 +0100
parents 9fba3e8bbadc
children 824fc05d9571
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -455,6 +455,24 @@ def Test_object_type()
       var o: One = Two.new()
   END
   v9.CheckScriptFailure(lines, 'E1012: Type mismatch; expected object<One> but got object<Two>')
+
+  lines =<< trim END
+      vim9script
+
+      interface One
+        def GetMember(): number
+      endinterface
+      class Two implements One
+        this.one = 1
+        def GetMember(): number
+          return this.one
+        enddef
+      endclass
+
+      var o: One = Two.new(5)
+      assert_equal(5, o.GetMember())
+  END
+  v9.CheckScriptSuccess(lines)
 enddef
 
 def Test_class_member()