Comment why normalization is needed for debug assertions
This commit is contained in:
parent
dd51b36fb2
commit
6e6fe30d0f
2 changed files with 14 additions and 2 deletions
|
@ -483,7 +483,12 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
|
|||
// Use `Reveal::All` here because patterns are always monomorphic even if their function
|
||||
// isn't.
|
||||
let param_env_reveal_all = self.param_env.with_reveal_all_normalized(self.tcx);
|
||||
let substs = self.typeck_results.node_substs(id);
|
||||
// N.B. There is no guarantee that substs collected in typeck results are fully normalized,
|
||||
// so they need to be normalized in order to pass to `Instance::resolve`, which will ICE
|
||||
// if given unnormalized types.
|
||||
let substs = self
|
||||
.tcx
|
||||
.normalize_erasing_regions(param_env_reveal_all, self.typeck_results.node_substs(id));
|
||||
let instance = match ty::Instance::resolve(self.tcx, param_env_reveal_all, def_id, substs) {
|
||||
Ok(Some(i)) => i,
|
||||
Ok(None) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue