Mercurial > vim
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); } } }