diff options
Diffstat (limited to 'src/vim9compile.c')
| -rw-r--r-- | src/vim9compile.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/vim9compile.c b/src/vim9compile.c index 8ef1faf3a..2b27f514c 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -8651,7 +8651,7 @@ compile_endblock(cctx_T *cctx) } /* - * compile "try" + * Compile "try". * Creates a new scope for the try-endtry, pointing to the first catch and * finally. * Creates another scope for the "try" block itself. @@ -8722,7 +8722,7 @@ compile_try(char_u *arg, cctx_T *cctx) } /* - * compile "catch {expr}" + * Compile "catch {expr}". */ static char_u * compile_catch(char_u *arg, cctx_T *cctx UNUSED) @@ -9477,8 +9477,8 @@ compile_substitute(char_u *arg, exarg_T *eap, cctx_T *cctx) static char_u * compile_redir(char_u *line, exarg_T *eap, cctx_T *cctx) { - char_u *arg = eap->arg; - lhs_T *lhs = &cctx->ctx_redir_lhs; + char_u *arg = eap->arg; + lhs_T *lhs = &cctx->ctx_redir_lhs; if (lhs->lhs_name != NULL) { @@ -9534,6 +9534,9 @@ compile_redir(char_u *line, exarg_T *eap, cctx_T *cctx) if (compile_assign_lhs(arg, lhs, CMD_redir, FALSE, FALSE, 1, cctx) == FAIL) return NULL; + if (need_type(&t_string, lhs->lhs_member_type, + -1, 0, cctx, FALSE, FALSE) == FAIL) + return NULL; generate_instr(cctx, ISN_REDIRSTART); lhs->lhs_append = append; if (lhs->lhs_has_index) |
