rust/compiler/rustc_borrowck/src
bors e2b3676733 Auto merge of #114586 - oli-obk:patch_tait_rpit_order_check, r=lcnr,compiler-errors
Bubble up opaque <eq> opaque operations instead of picking an order

In case we are in `Bubble` mode (meaning every opaque type that is defined in the current crate is treated as if it were in its defining scope), we don't try to register an opaque type as the hidden type of another opaque type, but instead bubble up an obligation to equate them at the query caller site. Usually that means we have a `DefiningAnchor::Bind` and thus can reliably figure out whether an opaque type is in its defining scope. Where we can't, we'll error out, so the default is sound.

With this change we start using `AliasTyEq` predicates in the old solver, too.

fixes https://github.com/rust-lang/rust/issues/108498

But also regresses `tests/ui/impl-trait/anon_scope_creep.rs`. Our use of `Bubble` for `check_opaque_type_well_formed` is going to keep biting us.

r? `@lcnr` `@compiler-errors`
2023-09-11 19:01:38 +00:00
..
constraints Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
diagnostics Auto merge of #115595 - surechen:114896, r=davidtwco 2023-09-11 15:02:59 +00:00
region_infer Auto merge of #114586 - oli-obk:patch_tait_rpit_order_check, r=lcnr,compiler-errors 2023-09-11 19:01:38 +00:00
type_check Don't report any errors in lower_intrinsics. They should have been typecked before. 2023-09-06 09:38:15 +00:00
util Move some utils out of rustc_const_eval 2023-04-16 12:05:54 +02:00
borrow_set.rs address most easy comments 2023-06-20 20:55:31 +08:00
borrowck_errors.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
constraint_generation.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
consumers.rs Fix redundant explicit link in rustc_borrowck 2023-08-19 02:22:13 +08:00
dataflow.rs Make TerminatorEdge plural. 2023-08-16 18:12:18 +00:00
def_use.rs unique borrows are mutating uses 2023-05-29 17:15:48 +02:00
facts.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
invalidation.rs when terminating during unwinding, show the reason why 2023-08-24 13:28:26 +02:00
lib.rs Take &mut Results in ResultsVisitor 2023-09-02 19:35:51 -04:00
location.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
member_constraints.rs remove unused muts 2023-04-28 20:19:48 +02:00
nll.rs Disentangle Debug and Display for Ty. 2023-09-11 12:51:07 +10:00
path_utils.rs Only consider places with the same local in each_borrow_involving_path. 2023-06-27 17:57:10 +00:00
place_ext.rs use PlaceRef abstractions more consistently 2023-06-25 20:38:01 -04:00
places_conflict.rs Extract the local != local case in borrow_conflicts_with_place. 2023-06-27 18:19:09 +00:00
prefixes.rs lint auto pass 2022-11-09 20:42:16 +08:00
renumber.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
session_diagnostics.rs Don't report any errors in lower_intrinsics. They should have been typecked before. 2023-09-06 09:38:15 +00:00
universal_regions.rs Disentangle Debug and Display for Ty. 2023-09-11 12:51:07 +10:00
used_muts.rs Rollup merge of #108856 - Zeegomo:remove-drop-and-rep, r=tmiasko 2023-03-08 21:26:51 +01:00