Skip to content

Commit 5714c1f

Browse files
committed
switch new solver to directly inject opaque types
1 parent 24ee32c commit 5714c1f

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

compiler/rustc_trait_selection/src/solve/eval_ctxt/canonical.rs

+4-7
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
236236
normalization_nested_goals,
237237
} = external_constraints.deref();
238238
self.register_region_constraints(region_constraints);
239-
self.register_new_opaque_types(param_env, opaque_types);
239+
self.register_new_opaque_types(opaque_types);
240240
(normalization_nested_goals.clone(), certainty)
241241
}
242242

@@ -368,13 +368,10 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
368368
assert!(region_constraints.member_constraints.is_empty());
369369
}
370370

371-
fn register_new_opaque_types(
372-
&mut self,
373-
param_env: ty::ParamEnv<'tcx>,
374-
opaque_types: &[(ty::OpaqueTypeKey<'tcx>, Ty<'tcx>)],
375-
) {
371+
fn register_new_opaque_types(&mut self, opaque_types: &[(ty::OpaqueTypeKey<'tcx>, Ty<'tcx>)]) {
376372
for &(key, ty) in opaque_types {
377-
self.insert_hidden_type(key, param_env, ty).unwrap();
373+
let hidden_ty = ty::OpaqueHiddenType { ty, span: DUMMY_SP };
374+
self.infcx.inject_new_hidden_type_unchecked(key, hidden_ty);
378375
}
379376
}
380377
}

compiler/rustc_trait_selection/src/solve/eval_ctxt/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@ impl<'a, 'tcx> EvalCtxt<'a, 'tcx> {
248248
};
249249

250250
for &(key, ty) in &input.predefined_opaques_in_body.opaque_types {
251-
ecx.insert_hidden_type(key, input.goal.param_env, ty)
252-
.expect("failed to prepopulate opaque types");
251+
let hidden_ty = ty::OpaqueHiddenType { ty, span: DUMMY_SP };
252+
ecx.infcx.inject_new_hidden_type_unchecked(key, hidden_ty);
253253
}
254254

255255
if !ecx.nested_goals.is_empty() {

0 commit comments

Comments
 (0)