Why the compiler emits box instructions to compare instances of a reference type?
It’s required to satisfy the verifiability constraints for the generated IL. Note that unverifiable doesn’t necessarily mean incorrect. It works just fine without the box instruction as long as its security context allows running unverifiable code. Verification is conservative and is based on a fixed rule set (like reachability). To simplify things, they chose not … Read more