use rustc_attr_ir::lang_items::LangItem;
use rustc_infer::infer::TyCtxtInferExt;
use rustc_middle::query::Providers;
use rustc_middle::ty;
use rustc_middle::ty::Ty;
use rustc_middle::ty::TyCtxt;
use rustc_middle::ty::TypingMode;
use rustc_trait_selection::traits::ObligationCause;
use rustc_trait_selection::traits::ObligationCtxt;
adt_ty
StructuralPartialEq
#[derive(PartialEq)]