Why not just put the crate/mod check *before* parsing the ABIs? (Given the current check only picks up `extern "C" mod`, not `extern "C" crate`.

(If it's not clear, I'm expect `extern crate` and `extern mod` to be handled completely identically *except* for the extra branch to emit a deprecation warning/error on `mod`.)