]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.3865: Vim9: compiler complains about using "try" as a struct member v8.2.3865
authorBram Moolenaar <Bram@vim.org>
Tue, 21 Dec 2021 09:42:09 +0000 (09:42 +0000)
committerBram Moolenaar <Bram@vim.org>
Tue, 21 Dec 2021 09:42:09 +0000 (09:42 +0000)
Problem:    Vim9: compiler complains about using "try" as a struct member.
Solution:   Rename "try" to "tryref".

src/version.c
src/vim9.h
src/vim9cmds.c
src/vim9execute.c
src/vim9instr.c

index bbb21576e5412c99f17e50a0dcd8163b2e474a8c..90b35d3884bd35f18b5c9d23eaf553d6363dee95 100644 (file)
@@ -749,6 +749,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3865,
 /**/
     3864,
 /**/
index 8a243ba7e9d4f6dd4a23ab7e5f0730e715e1fa06..a79ffb5af28a7a429d4ea1483bbe7a823ba04943 100644 (file)
@@ -112,7 +112,7 @@ typedef enum {
     // loop
     ISN_FOR,       // get next item from a list, uses isn_arg.forloop
 
-    ISN_TRY,       // add entry to ec_trystack, uses isn_arg.try
+    ISN_TRY,       // add entry to ec_trystack, uses isn_arg.tryref
     ISN_THROW,     // pop value of stack, store in v:exception
     ISN_PUSHEXC,    // push v:exception
     ISN_CATCH,     // drop v:exception
@@ -429,7 +429,7 @@ struct isn_S {
        jump_T              jump;
        jumparg_T           jumparg;
        forloop_T           forloop;
-       try_T               try;
+       try_T               tryref;
        trycont_T           trycont;
        cbfunc_T            bfunc;
        cdfunc_T            dfunc;
index fe9ead2750db5e203bdbb3886bb9e76f0468091e..6d8935a9c3f050fc09fcb0f54b00b010c474dc7d 100644 (file)
@@ -1290,8 +1290,8 @@ compile_try(char_u *arg, cctx_T *cctx)
        try_scope->se_u.se_try.ts_try_label = instr->ga_len;
        if ((isn = generate_instr(cctx, ISN_TRY)) == NULL)
            return NULL;
-       isn->isn_arg.try.try_ref = ALLOC_CLEAR_ONE(tryref_T);
-       if (isn->isn_arg.try.try_ref == NULL)
+       isn->isn_arg.tryref.try_ref = ALLOC_CLEAR_ONE(tryref_T);
+       if (isn->isn_arg.tryref.try_ref == NULL)
            return NULL;
     }
 
@@ -1352,8 +1352,8 @@ compile_catch(char_u *arg, cctx_T *cctx UNUSED)
 
        // End :try or :catch scope: set value in ISN_TRY instruction
        isn = ((isn_T *)instr->ga_data) + scope->se_u.se_try.ts_try_label;
-       if (isn->isn_arg.try.try_ref->try_catch == 0)
-           isn->isn_arg.try.try_ref->try_catch = instr->ga_len;
+       if (isn->isn_arg.tryref.try_ref->try_catch == 0)
+           isn->isn_arg.tryref.try_ref->try_catch = instr->ga_len;
        if (scope->se_u.se_try.ts_catch_label != 0)
        {
            // Previous catch without match jumps here
@@ -1452,7 +1452,7 @@ compile_finally(char_u *arg, cctx_T *cctx)
     {
        // End :catch or :finally scope: set value in ISN_TRY instruction
        isn = ((isn_T *)instr->ga_data) + scope->se_u.se_try.ts_try_label;
-       if (isn->isn_arg.try.try_ref->try_finally != 0)
+       if (isn->isn_arg.tryref.try_ref->try_finally != 0)
        {
            emsg(_(e_finally_dup));
            return NULL;
@@ -1479,9 +1479,9 @@ compile_finally(char_u *arg, cctx_T *cctx)
                                                             this_instr, cctx);
 
        // If there is no :catch then an exception jumps to :finally.
-       if (isn->isn_arg.try.try_ref->try_catch == 0)
-           isn->isn_arg.try.try_ref->try_catch = this_instr;
-       isn->isn_arg.try.try_ref->try_finally = this_instr;
+       if (isn->isn_arg.tryref.try_ref->try_catch == 0)
+           isn->isn_arg.tryref.try_ref->try_catch = this_instr;
+       isn->isn_arg.tryref.try_ref->try_finally = this_instr;
        if (scope->se_u.se_try.ts_catch_label != 0)
        {
            // Previous catch without match jumps here
@@ -1528,8 +1528,8 @@ compile_endtry(char_u *arg, cctx_T *cctx)
     try_isn = ((isn_T *)instr->ga_data) + scope->se_u.se_try.ts_try_label;
     if (cctx->ctx_skip != SKIP_YES)
     {
-       if (try_isn->isn_arg.try.try_ref->try_catch == 0
-                                     && try_isn->isn_arg.try.try_ref->try_finally == 0)
+       if (try_isn->isn_arg.tryref.try_ref->try_catch == 0
+                         && try_isn->isn_arg.tryref.try_ref->try_finally == 0)
        {
            emsg(_(e_missing_catch_or_finally));
            return NULL;
@@ -1564,7 +1564,7 @@ compile_endtry(char_u *arg, cctx_T *cctx)
     {
        // End :catch or :finally scope: set instruction index in ISN_TRY
        // instruction
-       try_isn->isn_arg.try.try_ref->try_endtry = instr->ga_len;
+       try_isn->isn_arg.tryref.try_ref->try_endtry = instr->ga_len;
        if (cctx->ctx_skip != SKIP_YES
                                   && generate_instr(cctx, ISN_ENDTRY) == NULL)
            return NULL;
index 43b7e6fdacf330c82f205433149182172b754356..74851121b22dd99f76d79474af2902b563a0348c 100644 (file)
@@ -3517,11 +3517,11 @@ exec_instructions(ectx_T *ectx)
                    trycmd->tcd_frame_idx = ectx->ec_frame_idx;
                    trycmd->tcd_stack_len = ectx->ec_stack.ga_len;
                    trycmd->tcd_catch_idx =
-                                         iptr->isn_arg.try.try_ref->try_catch;
+                                      iptr->isn_arg.tryref.try_ref->try_catch;
                    trycmd->tcd_finally_idx =
-                                       iptr->isn_arg.try.try_ref->try_finally;
+                                    iptr->isn_arg.tryref.try_ref->try_finally;
                    trycmd->tcd_endtry_idx =
-                                        iptr->isn_arg.try.try_ref->try_endtry;
+                                     iptr->isn_arg.tryref.try_ref->try_endtry;
                }
                break;
 
@@ -5670,7 +5670,7 @@ list_instructions(char *pfx, isn_T *instr, int instr_count, ufunc_T *ufunc)
 
            case ISN_TRY:
                {
-                   try_T *try = &iptr->isn_arg.try;
+                   try_T *try = &iptr->isn_arg.tryref;
 
                    if (try->try_ref->try_finally == 0)
                        smsg("%s%4d TRY catch -> %d, endtry -> %d",
index d82efe94e53aa20f098e6a26ac2907745ece59a1..48c90dc441d0b7a4b6912bb65356abda4b089f02 100644 (file)
@@ -2088,7 +2088,7 @@ delete_instr(isn_T *isn)
            break;
 
        case ISN_TRY:
-           vim_free(isn->isn_arg.try.try_ref);
+           vim_free(isn->isn_arg.tryref.try_ref);
            break;
 
        case ISN_CEXPR_CORE: