about summary refs log tree commit diff
path: root/compiler/rustc_infer/src/traits/util.rs
AgeCommit message (Collapse)AuthorLines
2023-12-07add unused `NormalizesTo` predicatelcnr-44/+26
2023-11-21Remove ClosureKind predicate kindMichael Goulet-3/+0
2023-11-19Make regionck care about placeholders in outlives componentsMichael Goulet-0/+5
2023-11-13rename `ReLateBound` to `ReBound`lcnr-2/+2
other changes: - `Region::new_late_bound` -> `Region::new_bound` - `Region::is_late_bound` -> `Region::is_bound`
2023-10-18Make sure that non-pretty-printing usages are using the correct elaboratorMichael Goulet-2/+2
2023-10-18Simplify transitive_bounds_that_define_assoc_itemMichael Goulet-33/+28
2023-08-02Remove constness from `TraitPredicate`Deadbeef-5/+1
2023-07-19Document `PredicateSet::insert`Maybe Waffle-0/+7
I always forget what the `bool` means :/
2023-07-05Move `TyCtxt::mk_x` to `Ty::new_x` where applicableBoxy-2/+2
2023-07-03remove TypeWellFormedFromEnvMichael Goulet-3/+0
2023-06-29Make the Elaboratable trait take clausesMichael Goulet-40/+42
2023-06-26TypeWellFormedInEnvMichael Goulet-1/+1
2023-06-26Migrate predicates_of and caller_bounds to ClauseMichael Goulet-2/+3
2023-06-22Expect clause moreMichael Goulet-4/+4
2023-06-22Migrate item_bounds to ty::ClauseMichael Goulet-0/+20
2023-06-19Fully fledged Clause typeMichael Goulet-0/+20
2023-06-19s/Clause/ClauseKindMichael Goulet-10/+10
2023-06-17Move ConstEvaluatable to ClauseMichael Goulet-1/+1
2023-06-17Move WF goal to clauseMichael Goulet-1/+1
2023-05-07Auto merge of #111161 - compiler-errors:rtn-super, r=cjgillotbors-4/+4
Support return-type bounds on associated methods from supertraits Support `T: Trait<method(): Bound>` when `method` comes from a supertrait, aligning it with the behavior of associated type bounds (both equality and trait bounds). The only wrinkle is that I have to extend `super_predicates_that_define_assoc_type` to look for *all* items, not just `AssocKind::Ty`. This will also be needed to support `feature(associated_const_equality)` as well, which is subtly broken when it comes to supertraits, though this PR does not fix those yet. There's a slight chance there's a perf regression here, in which case I guess I could split it out into a separate query.
2023-05-03Rename things to reflect that they're not item specificMichael Goulet-4/+4
2023-05-02Make negative trait bounds work with the old trait solverMichael Goulet-0/+4
2023-04-11Allow the elaborator to only filter to real supertraitsMichael Goulet-15/+26
2023-04-11Split implied and super predicate queriesMichael Goulet-1/+1
2023-04-11Split super_predicates_that_define_assoc_type query from super_predicates_ofMichael Goulet-4/+2
2023-04-06Get rid of elaborate_trait_ref{s} tooMichael Goulet-17/+7
2023-04-06Make elaborator genericMichael Goulet-92/+117
2023-03-26Don't elaborate non-obligations into obligationsMichael Goulet-35/+43
2023-03-23Rename AliasEq -> AliasRelateMichael Goulet-1/+1
2023-02-24rustc_infer: Consolidate obligation elaboration de-duplicationPatrik Kårlin-16/+15
2023-02-17Add `Clause::ConstArgHasType` variantBoxy-0/+3
2023-02-16Clarify `DerivedObligationCause` may hold alias idAlan Egerton-1/+1
2023-02-10add `AliasEq` to `PredicateKind`Boxy-0/+3
2023-01-23Point at specific field in struct literal when trait fulfillment failsNathan Fenner-24/+26
2023-01-19even more unify Projection/Opaque in outlives codeAli MJ Al-Nasrawy-4/+5
2023-01-17Rollup merge of #104505 - WaffleLapkin:no-double-spaces-in-comments, r=jackh726Matthias Krüger-1/+1
Remove double spaces after dots in comments Most of the comments do not have double spaces, so I assume these are typos.
2023-01-17Remove double spaces after dots in commentsMaybe Waffle-1/+1
2023-01-17Rollup merge of #106829 - compiler-errors:more-alias-combine, r=spastorinoMatthias Krüger-11/+2
Unify `Opaque`/`Projection` handling in region outlives code They share basically identical paths in most places which are even easier to unify now that they're both `ty::Alias` r? types
2023-01-13Unify Opaque/Projection handling in region outlives codeMichael Goulet-11/+2
2023-01-13Keep obligation chain when elaborating obligationsEsteban Küber-3/+15
2022-12-13ProjectionTy.item_def_id -> ProjectionTy.def_idMichael Goulet-2/+1
2022-11-25Introduce PredicateKind::ClauseSantiago Pastorino-12/+15
2022-11-21Add an always-ambiguous predicate to make sure that we don't accidentlally ↵Oli Scherer-0/+1
allow trait resolution to prove false things during coherence
2022-09-21Neither require nor imply lifetime bounds on opaque type for well formednessOli Scherer-2/+10
2022-07-28anonymize all bound vars, not just regionslcnr-2/+2
2022-07-23Remap elaborated obligation constnessDeadbeef-1/+6
2022-02-11Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis"Oli Scherer-3/+0
This reverts commit e7cc3bddbe0d0e374d05e7003e662bba1742dbae, reversing changes made to 734368a200904ef9c21db86c595dc04263c87be0.
2022-02-02Lazily resolve type-alias-impl-trait defining usesOli Scherer-0/+3
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-01-16Rollup merge of #92710 - jackh726:issue-92280, r=nikomatsakisMatthias Krüger-4/+13
Include Projections when elaborating TypeOutlives Fixes #92280 In `Elaborator`, we elaborate that `Foo<<Bar as Baz>::Assoc>: 'a` -> `<Bar as Baz>::Assoc: 'a`. This is the same rule that would be applied to any other `Param`. If there are escaping vars, we continue to do nothing. r? `@nikomatsakis`
2022-01-15Rollup merge of #92191 - jackh726:issue-89352, r=nikomatsakisMatthias Krüger-1/+1
Prefer projection candidates instead of param_env candidates for Sized predicates Fixes #89352 Also includes some drive by logging and verbose printing changes that I found useful when debugging this, but I can remove this if needed. This is a little hacky - but imo no more than the rest of `candidate_should_be_dropped_in_favor_of`. Importantly, in a Chalk-like world, both candidates should be completely compatible. r? ```@nikomatsakis```