diff options
| author | lcnr <rust@lcnr.de> | 2023-10-31 11:50:30 +0100 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2023-10-31 11:50:30 +0100 |
| commit | 078144e3e893ef1e52eb6bfa909777ece444dedf (patch) | |
| tree | 770f1795fa6eb4d7934cb9979ea573c80a342960 | |
| parent | ffb7ed9fa420e9bcd98d84b431b2009445b7b967 (diff) | |
| download | rust-078144e3e893ef1e52eb6bfa909777ece444dedf.tar.gz rust-078144e3e893ef1e52eb6bfa909777ece444dedf.zip | |
prepopulate opaque ty storage before using it :>
| -rw-r--r-- | compiler/rustc_borrowck/src/type_check/mod.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/compiler/rustc_borrowck/src/type_check/mod.rs b/compiler/rustc_borrowck/src/type_check/mod.rs index 8477686d4f5..9f30d9d8ba1 100644 --- a/compiler/rustc_borrowck/src/type_check/mod.rs +++ b/compiler/rustc_borrowck/src/type_check/mod.rs @@ -188,11 +188,7 @@ pub(crate) fn type_check<'mir, 'tcx>( &mut borrowck_context, ); - // FIXME(-Ztrait-solver=next): A bit dubious that we're only registering - // predefined opaques in the typeck root. - if infcx.next_trait_solver() && !infcx.tcx.is_typeck_child(body.source.def_id()) { - checker.register_predefined_opaques_in_new_solver(); - } + checker.check_user_type_annotations(); let mut verifier = TypeVerifier::new(&mut checker, promoted); verifier.visit_body(&body); @@ -1021,7 +1017,13 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> { borrowck_context, reported_errors: Default::default(), }; - checker.check_user_type_annotations(); + + // FIXME(-Ztrait-solver=next): A bit dubious that we're only registering + // predefined opaques in the typeck root. + if infcx.next_trait_solver() && !infcx.tcx.is_typeck_child(body.source.def_id()) { + checker.register_predefined_opaques_in_new_solver(); + } + checker } |
