use std::ops::Deref;
use rustc_errors::DiagCtxtHandle;
use rustc_infer::infer::InferCtxt;
use rustc_infer::traits::PredicateObligations;
use rustc_macros::extension;
use rustc_middle::ty;
use rustc_middle::ty::Ty;
use rustc_span::bug;
typeck_results
InferCtxt::err_ctxt
FnCtxt::err_ctxt