Mercurial > vim
comparison src/evalfunc.c @ 33019:04c75e67ca30 v9.0.1801
patch 9.0.1801: Vim9 instanceof() fails in a def func
Commit: https://github.com/vim/vim/commit/b49ad28d731551ddbd5cc57f9c77d0df085ae845
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sun Aug 27 19:08:40 2023 +0200
patch 9.0.1801: Vim9 instanceof() fails in a def func
Problem: Vim9 instanceof() fails in a def func
Solution: allow Objects in compile time check
closes: #12907
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 27 Aug 2023 19:15:07 +0200 |
parents | 75c283beb74f |
children | dcfbfe57141c |
comparison
equal
deleted
inserted
replaced
33018:f0ac5bb79f9f | 33019:04c75e67ca30 |
---|---|
280 * Check "type" is an object. | 280 * Check "type" is an object. |
281 */ | 281 */ |
282 static int | 282 static int |
283 arg_object(type_T *type, type_T *decl_type UNUSED, argcontext_T *context) | 283 arg_object(type_T *type, type_T *decl_type UNUSED, argcontext_T *context) |
284 { | 284 { |
285 return check_arg_type(&t_object, type, context); | 285 if (type->tt_type == VAR_OBJECT |
286 || type_any_or_unknown(type)) | |
287 return OK; | |
288 arg_type_mismatch(&t_object, type, context->arg_idx + 1); | |
289 return FAIL; | |
286 } | 290 } |
287 | 291 |
288 /* | 292 /* |
289 * Check "type" is a dict of 'any'. | 293 * Check "type" is a dict of 'any'. |
290 */ | 294 */ |