allow destructive inlining only when the source is volatile (#52062)
Destructive inlining introduced by JuliaLang/julia#51934 implicitly
presupposes that inferred `CodeInfo` source has been compressed to the
`String` format when cached, which is not generally true for external
`AbstractInterpreter`s that may disable the `may_compress` and/or
`may_discard_trees` settings. This commit adds a safeguard to ensure the
eligibility of such `CodeInfo` source propagated by
`VolatileInferenceResult` for destructive inlining.