about summary refs log tree commit diff
path: root/compiler/rustc_infer/src/infer/glb.rs
AgeCommit message (Collapse)AuthorLines
2023-12-15Move type relations into submodule in rustc_inferMichael Goulet-154/+0
2023-04-04Remove intercrate and mark_ambiguous from RelationMichael Goulet-9/+0
2023-03-23Include relation direction in AliasEq predicateMichael Goulet-0/+5
2023-03-15always make `define_opaque_types` explicitlcnr-2/+2
2023-02-23Rollup merge of #108350 - compiler-errors:assoc-type-bound-dogfooding, r=oli-obkMatthias Krüger-4/+1
Use associated type bounds in some places in the compiler Use associated type bounds for some nested `impl Trait<Assoc = impl Trait2>` cases. I'm generally keen to introduce new lang features that are more mature into the compiler, but maybe let's see what others think? Side-note: I was surprised that the only use-cases of nested impl trait in the compiler are just iterator related?!
2023-02-22Remove type-traversal trait aliasesAlan Egerton-1/+1
2023-02-21Associated type bounds in some places in the compilerMichael Goulet-4/+1
2023-02-10emit `AliasEq` when relating type and const aliasesBoxy-10/+12
2023-01-27internally change regions to be covariantAli MJ Al-Nasrawy-1/+2
2022-12-13Fast path some binder relationsMichael Goulet-0/+5
2022-11-21Add some more assertions for type relations not used during coherenceOli Scherer-2/+3
2022-11-21Add an always-ambiguous predicate to make sure that we don't accidentlally ↵Oli Scherer-0/+4
allow trait resolution to prove false things during coherence
2022-11-21Treat different opaque types of the same def id as equal during coherenceOli Scherer-0/+4
2022-10-07Remove TypeckResults from InferCtxtCameron Steffen-1/+1
2022-06-08lub: don't bail out due to empty binderslcnr-6/+14
2022-03-28Revert "Auto merge of #93893 - oli-obk:sad_revert, r=oli-obk"Oli Scherer-1/+9
This reverts commit 6499c5e7fc173a3f55b7a3bd1e6a50e9edef782d, reversing changes made to 78450d2d602b06d9b94349aaf8cece1a4acaf3a8.
2022-02-28Edit `rustc_trait_selection::infer::lattice` docspierwill-0/+2
Remove mentions of outdated/missing type and filename (`infer.rs` and `LatticeValue`).
2022-02-15Overhaul `Const`.Nicholas Nethercote-4/+4
Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as this: ``` pub struct Const<'tcx>(&'tcx Interned<ConstS>); ``` This now matches `Ty` and `Predicate` more closely, including using pointer-based `eq` and `hash`. Notable changes: - `mk_const` now takes a `ConstS`. - `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a we need separate arena for it, because we can't use the `Dropless` one any more. - Many `&'tcx Const<'tcx>`/`&Const<'tcx>` to `Const<'tcx>` changes - Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes. - Lots of tedious sigil fiddling.
2022-02-11Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis"Oli Scherer-9/+1
This reverts commit e7cc3bddbe0d0e374d05e7003e662bba1742dbae, reversing changes made to 734368a200904ef9c21db86c595dc04263c87be0.
2022-02-02Lazily resolve type-alias-impl-trait defining usesOli Scherer-1/+9
by using an opaque type obligation to bubble up comparisons between opaque types and other types Also uses proper obligation causes so that the body id works, because out of some reason nll uses body ids for logic instead of just diagnostics.
2021-12-13Remove `in_band_lifetimes` from `rustc_infer`LegionMammal978-1/+1
This crate actually had a typo `'ctx` in one of its functions: ```diff -pub fn same_type_modulo_infer(a: Ty<'tcx>, b: Ty<'ctx>) -> bool { +pub fn same_type_modulo_infer<'tcx>(a: Ty<'tcx>, b: Ty<'tcx>) -> bool { ```
2021-08-18Remove box syntax from rustc_inferest31-1/+1
2021-06-06Add variance-related information to lifetime error messagesAaron Hill-1/+2
2021-03-31Add tcx lifetime to BinderJack Huey-3/+3
2020-08-30mv compiler to compiler/mark-0/+125