patch 9.0.1041: cannot define a method in a class
Problem: Cannot define a method in a class.
Solution: Implement defining an object method. Make calling an object
method work.
diff --git a/src/vim9compile.c b/src/vim9compile.c
index ab9e965..08e273d 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -52,7 +52,7 @@
CLEAR_POINTER(lvar);
lvar->lv_name = (char_u *)"this";
if (cctx->ctx_ufunc->uf_class != NULL)
- lvar->lv_type = &cctx->ctx_ufunc->uf_class->class_type;
+ lvar->lv_type = &cctx->ctx_ufunc->uf_class->class_object_type;
}
return OK;
}
@@ -975,7 +975,7 @@
goto theend;
}
- ufunc = define_function(eap, lambda_name, lines_to_free, NULL);
+ ufunc = define_function(eap, lambda_name, lines_to_free, FALSE);
if (ufunc == NULL)
{
r = eap->skip ? OK : FAIL;