Store init/assign locations closer to their results.

This will make it easier to correlate outcomes with the source locations
that caused them, for better error reporting.