patch 9.0.1796: Vim9 problems with null_objects
Problem: Vim9 problems with null_objects
Solution: Vim9 improve null_object usage
Fix "xvar == null", where xvar might have been assigned null_object.
Fix compilation failure: "var o2: C = null_object".
closes: #12890
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 7427f25..add9eda 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2299,6 +2299,9 @@
case VAR_CHANNEL:
r = generate_PUSHCHANNEL(cctx);
break;
+ case VAR_OBJECT:
+ r = generate_PUSHOBJ(cctx);
+ break;
case VAR_NUMBER:
case VAR_UNKNOWN:
case VAR_ANY:
@@ -2306,7 +2309,6 @@
case VAR_VOID:
case VAR_INSTR:
case VAR_CLASS:
- case VAR_OBJECT:
case VAR_SPECIAL: // cannot happen
// This is skipped for local variables, they are always
// initialized to zero. But in a "for" or "while" loop