Fix #warnings taking exponential time to compute

*sigh*
Well, if we need this we can just cache in a local like @fw42 said, but I don't see why we do (it wasn't like this before the blockbody PR).