diff src/vim9class.c @ 34834:d3127b18fe1e v9.1.0286

patch 9.1.0286: Vim9: E1027 with defcompile for abstract methods Commit: https://github.com/vim/vim/commit/1af0fbf955f799392f614bc38f9d2fcbd9960526 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Tue Apr 9 21:39:27 2024 +0200 patch 9.1.0286: Vim9: E1027 with defcompile for abstract methods Problem: Vim9: E1027 with defcompile for abstract methods with non-void return types, but still compiles it (zzzyxwvut) Solution: Don't compile abstract methods (Yegappan Lakshmanan) fixes: #14443 closes: #14447 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 09 Apr 2024 21:45:04 +0200
parents d4fb6ea26ae4
children 8c9e43278b2c
line wrap: on
line diff
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -3723,7 +3723,9 @@ defcompile_class(class_T *cl)
 	{
 	    ufunc_T *ufunc = loop == 1 ? cl->class_class_functions[i]
 						: cl->class_obj_methods[i];
-	    defcompile_function(ufunc, cl);
+	    // Don't compile abstract methods
+	    if (!IS_ABSTRACT_METHOD(ufunc))
+		defcompile_function(ufunc, cl);
 	}
     }
 }