The flattening of the catch leads to a false becoming the third argument of the try expression, which can not be distinguished from a try ...; finally block without a catch statement. Previously this was a silent bug. With #195 now it explicitly raises an error with a suggestion for how to rework the statement.
A complete fix needs a different tree traversal strategy and a rewrite of flatten. This issue is submitted here in order to keep record of the implemented changes and steps necessary for a complete fix.
Even with #195 the following still does not work:
The flattening of the
catch
leads to afalse
becoming the third argument of thetry
expression, which can not be distinguished from atry ...; finally
block without acatch
statement. Previously this was a silent bug. With #195 now it explicitly raises an error with a suggestion for how to rework the statement.A complete fix needs a different tree traversal strategy and a rewrite of
flatten
. This issue is submitted here in order to keep record of the implemented changes and steps necessary for a complete fix.