use crate::dep_graph::{DepConstructor, DepNode, WorkProduct, WorkProductId};
-use crate::hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
-use crate::hir::HirId;
use crate::ich::{Fingerprint, NodeIdHashingMode, StableHashingContext};
use crate::session::config::OptLevel;
+use crate::traits::TraitQueryMode;
use crate::ty::print::obsolete::DefPathBasedNames;
use crate::ty::{subst::InternalSubsts, Instance, InstanceDef, SymbolName, TyCtxt};
use rustc_data_structures::base_n;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
+use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
+use rustc_hir::HirId;
use rustc_span::source_map::Span;
use rustc_span::symbol::Symbol;
use std::fmt;
MonoItem::GlobalAsm(..) => return true,
};
- tcx.substitute_normalize_and_test_predicates((def_id, &substs))
+ // We shouldn't encounter any overflow here, so we use TraitQueryMode::Standard\
+ // to report an error if overflow somehow occurs.
+ tcx.substitute_normalize_and_test_predicates((def_id, &substs, TraitQueryMode::Standard))
}
pub fn to_string(&self, tcx: TyCtxt<'tcx>, debug: bool) -> String {