diff options
author | sebres <sebres@users.sourceforge.net> | 2022-04-26 12:28:01 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2022-04-26 12:28:01 (GMT) |
commit | ba82b0c9afd6e91aa97e13a95cf1a2ee4fcd4097 (patch) | |
tree | 98d87a2e30b5bca5076898da247a9a699a528c2d | |
parent | 022866233a63e9133701ff21ca684cb009c171fb (diff) | |
parent | 2ce077e7c8a82332c62a598756f2de7dffb17376 (diff) | |
download | tcl-ba82b0c9afd6e91aa97e13a95cf1a2ee4fcd4097.zip tcl-ba82b0c9afd6e91aa97e13a95cf1a2ee4fcd4097.tar.gz tcl-ba82b0c9afd6e91aa97e13a95cf1a2ee4fcd4097.tar.bz2 |
closes bug [27520c9b17]
-rw-r--r-- | generic/tclCompCmdsSZ.c | 3 | ||||
-rw-r--r-- | tests/error.test | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 8828b59..4c325c2 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -2931,6 +2931,9 @@ TclCompileTryCmd( goto failedToCompile; } finallyToken = TokenAfter(tokenPtr); + if (finallyToken->type != TCL_TOKEN_SIMPLE_WORD) { + goto failedToCompile; + } } else { goto failedToCompile; } diff --git a/tests/error.test b/tests/error.test index a111c80..d5ce528 100644 --- a/tests/error.test +++ b/tests/error.test @@ -351,6 +351,13 @@ test error-9.4 {try (ok, non-empty result) with on handler} { test error-9.5 {try (ok, non-empty result) with on ok handler} { try { list a b c } on ok {} { list d e f } } {d e f} +test error-9.6 {try (compilation of simple finaly token only, bug [27520c9b17])} -body { + set b {}; set l {} + try {lappend l error} finally [lappend l set b] + list $l $b +} -cleanup { + unset -nocomplain b l +} -result {{set b error} {}} # simple try tests - "on" handler matching |