Forwarded temporaries would never declare a temporary. Figure out all result types ahead of time so we can deal with those temporaries as well.
Forgot to add it to emit_block_chain. It should just be a noop.