diff options
| author | Michael Goulet <michael@errs.io> | 2023-05-04 20:40:02 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-05-15 16:40:42 +0000 |
| commit | c270b0a8a844f0bac1ee1acd8a1ebabc0cee65e7 (patch) | |
| tree | d5e2d8f81675c1fdf38b52ea47d6e309c40396c9 /compiler/rustc_infer/src/infer/combine.rs | |
| parent | 338e7642fbe6af32351363ab1044494da14b0dec (diff) | |
| download | rust-c270b0a8a844f0bac1ee1acd8a1ebabc0cee65e7.tar.gz rust-c270b0a8a844f0bac1ee1acd8a1ebabc0cee65e7.zip | |
Simplify delegate
Diffstat (limited to 'compiler/rustc_infer/src/infer/combine.rs')
| -rw-r--r-- | compiler/rustc_infer/src/infer/combine.rs | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/compiler/rustc_infer/src/infer/combine.rs b/compiler/rustc_infer/src/infer/combine.rs index a5d7641504d..b13c9627bf7 100644 --- a/compiler/rustc_infer/src/infer/combine.rs +++ b/compiler/rustc_infer/src/infer/combine.rs @@ -28,7 +28,7 @@ use super::lub::Lub; use super::sub::Sub; use super::type_variable::TypeVariableValue; use super::{DefineOpaqueTypes, InferCtxt, MiscVariable, TypeTrace}; -use crate::infer::generalize::{Generalization, Generalizer}; +use crate::infer::generalize::{generalize, CombineDelegate, Generalization}; use crate::traits::{Obligation, PredicateObligations}; use rustc_middle::infer::canonical::OriginalQueryValues; use rustc_middle::infer::unify_key::{ConstVarValue, ConstVariableValue}; @@ -471,25 +471,17 @@ impl<'infcx, 'tcx> CombineFields<'infcx, 'tcx> { RelationDir::SupertypeOf => ty::Contravariant, }; - trace!(?ambient_variance); - - let for_universe = self.infcx.probe_ty_var(for_vid).unwrap_err(); - let for_vid_sub_root = self.infcx.inner.borrow_mut().type_variables().sub_root_var(for_vid); - - trace!(?for_universe); - trace!(?self.trace); - - Generalizer { - infcx: self.infcx, - delegate: self, + generalize::generalize( + self.infcx, + &mut CombineDelegate { + infcx: self.infcx, + param_env: self.param_env, + span: self.trace.span(), + }, + ty, + for_vid, ambient_variance, - for_universe, - for_vid_sub_root, - root_ty: ty, - cache: Default::default(), - needs_wf: false, - } - .generalize(ty) + ) } pub fn register_obligations(&mut self, obligations: PredicateObligations<'tcx>) { |
