Mercurial > vim
comparison src/vim9.h @ 27084:6fc63c6a7ee7 v8.2.4071
patch 8.2.4071: Vim9: no detection of return in try/endtry
Commit: https://github.com/vim/vim/commit/53c296112edd8471eb63afbca03f96bad164c813
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 12 16:18:18 2022 +0000
patch 8.2.4071: Vim9: no detection of return in try/endtry
Problem: Vim9: no detection of return in try/endtry. (Dominique Pell?)
Solution: Check if any of the blocks inside try/endtry did not end in
return.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 12 Jan 2022 17:30:07 +0100 |
parents | 4e77f9961650 |
children | 1a6421c5be20 |
comparison
equal
deleted
inserted
replaced
27083:15f9359846ad | 27084:6fc63c6a7ee7 |
---|---|
592 typedef struct { | 592 typedef struct { |
593 int ts_try_label; // instruction idx at TRY | 593 int ts_try_label; // instruction idx at TRY |
594 endlabel_T *ts_end_label; // jump to :finally or :endtry | 594 endlabel_T *ts_end_label; // jump to :finally or :endtry |
595 int ts_catch_label; // instruction idx of last CATCH | 595 int ts_catch_label; // instruction idx of last CATCH |
596 int ts_caught_all; // "catch" without argument encountered | 596 int ts_caught_all; // "catch" without argument encountered |
597 int ts_has_finally; // "finally" encountered | |
598 int ts_no_return; // one of the blocks did not end in return | |
597 } tryscope_T; | 599 } tryscope_T; |
598 | 600 |
599 typedef enum { | 601 typedef enum { |
600 NO_SCOPE, | 602 NO_SCOPE, |
601 IF_SCOPE, | 603 IF_SCOPE, |