catch_all_gen is holding the "try" sub-expression by reference, which of course is not valid.
Holding them by value and using base_type instead of that_type fixes the bug.
while, do/while and switch also have this bug.
Interestingly 'if' and 'for' do not.
is_actor appears to also not be consistently specialized.