0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 9.1.0523: Vim9: cannot downcast an object

Problem:  Vim9: cannot downcast an object (Ernie Rael)
Solution: Fix class downcasting issue (LemonBoy).

When casting an object from one class to another the target type may be
a subclass (downcast) or superclass (upcast) of the source one.
Upcasts require a runtime type check to be emitted.

Add a disassembly test.

fixes: #13244
closes: #15079

Signed-off-by: LemonBoy <thatlemon@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
LemonBoy
2024-07-04 17:03:17 +02:00
committed by Christian Brabandt
parent 05ff4e42fb
commit 50d485432c
7 changed files with 104 additions and 4 deletions

View File

@@ -4902,7 +4902,8 @@ typedef enum {
WT_MEMBER,
WT_METHOD, // object method
WT_METHOD_ARG, // object method argument type
WT_METHOD_RETURN // object method return type
WT_METHOD_RETURN, // object method return type
WT_CAST, // type cast
} wherekind_T;
// Struct used to pass the location of a type check. Used in error messages to