Mercurial > vim
comparison src/vim9type.c @ 25137:34f18d4081af v8.2.3105
patch 8.2.3105: Vim9: type of partial is wrong when it has arguments
Commit: https://github.com/vim/vim/commit/97f227d9c9351f12138d923ffdf9232dc5520bef
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jul 4 20:20:52 2021 +0200
patch 8.2.3105: Vim9: type of partial is wrong when it has arguments
Problem: Vim9: type of partial is wrong when it has arguments.
Solution: Subtract arguments from the count. (issue https://github.com/vim/vim/issues/8492)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 04 Jul 2021 20:30:03 +0200 |
parents | 5731bcaaabcb |
children | 694f114a7673 |
comparison
equal
deleted
inserted
replaced
25136:d838f9187c57 | 25137:34f18d4081af |
---|---|
353 == FAIL) | 353 == FAIL) |
354 return NULL; | 354 return NULL; |
355 if (ufunc->uf_func_type == NULL) | 355 if (ufunc->uf_func_type == NULL) |
356 set_function_type(ufunc); | 356 set_function_type(ufunc); |
357 if (ufunc->uf_func_type != NULL) | 357 if (ufunc->uf_func_type != NULL) |
358 { | |
359 if (tv->v_type == VAR_PARTIAL | |
360 && tv->vval.v_partial->pt_argc > 0) | |
361 { | |
362 type = get_type_ptr(type_gap); | |
363 if (type == NULL) | |
364 return NULL; | |
365 *type = *ufunc->uf_func_type; | |
366 type->tt_argcount -= tv->vval.v_partial->pt_argc; | |
367 type->tt_min_argcount -= tv->vval.v_partial->pt_argc; | |
368 return type; | |
369 } | |
358 return ufunc->uf_func_type; | 370 return ufunc->uf_func_type; |
371 } | |
359 } | 372 } |
360 } | 373 } |
361 | 374 |
362 type = get_type_ptr(type_gap); | 375 type = get_type_ptr(type_gap); |
363 if (type == NULL) | 376 if (type == NULL) |