Fixes cases where discard and demote are called in pure functions and the function result is not consumed.