some general mir typeck cleanup this pr contains the parts of #95763 which already work correctly. the remaining commits of that PR have some issues which are more complex to fix. r? types
type_check_internal
type_check
rustc::pass_by_value
crate
MutatatingUseContext
SetDiscriminant
debugging_opts
unstable_opts