about summary refs log tree commit diff
path: root/compiler/rustc_infer/src/infer/equate.rs
AgeCommit message (Collapse)AuthorLines
2023-12-15Move type relations into submodule in rustc_inferMichael Goulet-190/+0
2023-10-04Make it clear that args default to being related invariantlyMichael Goulet-1/+1
2023-09-23Remove GeneratorWitness and rename GeneratorWitnessMIR.Camille GILLOT-20/+0
2023-07-14refactor(rustc_middle): Substs -> GenericArgMahdi Dibaiee-6/+6
2023-06-06New trait solver is a property of inference contextMichael Goulet-1/+1
2023-05-25Pull out logic from #111131, plus some new logic in ↵Michael Goulet-1/+2
EvalCtxt::normalize_opaque_type Co-authored-by: lcnr <rust@lcnr.de>
2023-05-15Replace RelationDir with VarianceMichael Goulet-3/+3
2023-04-17Spelling - compilerJosh Soref-1/+1
* account * achieved * advising * always * ambiguous * analysis * annotations * appropriate * build * candidates * cascading * category * character * clarification * compound * conceptually * constituent * consts * convenience * corresponds * debruijn * debug * debugable * debuggable * deterministic * discriminant * display * documentation * doesn't * ellipsis * erroneous * evaluability * evaluate * evaluation * explicitly * fallible * fulfill * getting * has * highlighting * illustrative * imported * incompatible * infringing * initialized * into * intrinsic * introduced * javascript * liveness * metadata * monomorphization * nonexistent * nontrivial * obligation * obligations * offset * opaque * opportunities * opt-in * outlive * overlapping * paragraph * parentheses * poisson * precisely * predecessors * predicates * preexisting * propagated * really * reentrant * referent * responsibility * rustonomicon * shortcircuit * simplifiable * simplifications * specify * stabilized * structurally * suggestibility * translatable * transmuting * two * unclosed * uninhabited * visibility * volatile * workaround Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-04Remove intercrate and mark_ambiguous from RelationMichael Goulet-8/+0
2023-03-23Include relation direction in AliasEq predicateMichael Goulet-0/+4
2023-03-15always make `define_opaque_types` explicitlcnr-1/+3
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-4/+13
2023-02-07Replacing bound vars is actually instantiating a binderMichael Goulet-1/+1
2022-12-14Ensure no one constructs `AliasTy`s themselvesOli Scherer-4/+4
2022-12-13Combine projection and opaque into aliasMichael Goulet-4/+4
2022-12-13squash OpaqueTy and ProjectionTy into AliasTyMichael Goulet-4/+4
2022-12-13Use ty::OpaqueTy everywhereMichael Goulet-3/+7
2022-12-13Fast path some binder relationsMichael Goulet-0/+5
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-09-22Comment, and bail early if bound vars list differsMichael Goulet-5/+6
2022-09-22Optimize subtyping and equation of GeneratorWitnessMichael Goulet-0/+18
2022-06-10update higher_ranked_sub docslcnr-2/+2
2022-04-17Split relate_substs into two functionsMartin Gammelsæter-1/+1
One for the case with variances, and one without. All callers use an explicit Option for the variable anyway.
2022-03-28Remove opaque type obligation and just register opaque types as they are ↵Oli Scherer-7/+11
encountered. This also registers obligations for the hidden type immediately.
2022-03-28Revert "Auto merge of #93893 - oli-obk:sad_revert, r=oli-obk"Oli Scherer-3/+19
This reverts commit 6499c5e7fc173a3f55b7a3bd1e6a50e9edef782d, reversing changes made to 78450d2d602b06d9b94349aaf8cece1a4acaf3a8.
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-19/+3
This reverts commit e7cc3bddbe0d0e374d05e7003e662bba1742dbae, reversing changes made to 734368a200904ef9c21db86c595dc04263c87be0.
2022-02-02Lazily resolve type-alias-impl-trait defining usesOli Scherer-1/+16
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.
2022-02-02Add roll back infrastructure for opaque type cachesOli Scherer-3/+4
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-0/+1
2021-03-31Add tcx lifetime to BinderJack Huey-3/+3
2020-09-04Change ty.kind to a methodLeSeulArtichaut-1/+1
2020-08-30mv compiler to compiler/mark-0/+148