Rejigger a few spans, work around an odd rustc issue, and hopefully produce higher quality error messages! Closes #1528