Ali MJ Al-Nasrawy
a7a842027c
even more unify Projection/Opaque in outlives code
2023-01-19 15:31:53 +03:00
Matthias Krüger
68f12338af
Rollup merge of #104505 - WaffleLapkin:no-double-spaces-in-comments, r=jackh726
...
Remove double spaces after dots in comments
Most of the comments do not have double spaces, so I assume these are typos.
2023-01-17 20:21:25 +01:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
Matthias Krüger
6b49435480
Rollup merge of #106829 - compiler-errors:more-alias-combine, r=spastorino
...
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-17 05:25:22 +01:00
Michael Goulet
1ea6862db3
Unify Opaque/Projection handling in region outlives code
2023-01-13 23:53:28 +00:00
Esteban Küber
3d6b09e53e
Keep obligation chain when elaborating obligations
2023-01-13 18:20:23 +00:00
Michael Goulet
5c6afb850c
ProjectionTy.item_def_id -> ProjectionTy.def_id
2022-12-13 17:34:44 +00:00
Santiago Pastorino
974e2837bb
Introduce PredicateKind::Clause
2022-11-25 00:04:54 -03:00
Oli Scherer
ae80c764d4
Add an always-ambiguous predicate to make sure that we don't accidentlally allow trait resolution to prove false things during coherence
2022-11-21 16:35:04 +00:00
Oli Scherer
37928f5986
Neither require nor imply lifetime bounds on opaque type for well formedness
2022-09-21 13:11:54 +00:00
lcnr
c3fce8e937
anonymize all bound vars, not just regions
2022-07-28 16:13:47 +02:00
Deadbeef
08cb878430
Remap elaborated obligation constness
2022-07-23 14:25:55 +00:00
Oli Scherer
d54195db22
Revert "Auto merge of #92007 - oli-obk:lazy_tait2, r=nikomatsakis"
...
This reverts commit e7cc3bddbe , reversing
changes made to 734368a200 .
2022-02-11 07:18:06 +00:00
Oli Scherer
0f6e06b7c0
Lazily resolve type-alias-impl-trait defining uses
...
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-02 15:40:11 +00:00
Matthias Krüger
9835b90c91
Rollup merge of #92710 - jackh726:issue-92280, r=nikomatsakis
...
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-16 16:58:17 +01:00
Matthias Krüger
64716825b0
Rollup merge of #92191 - jackh726:issue-89352, r=nikomatsakis
...
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```
2022-01-15 02:25:14 +01:00
Jack Huey
ad57295fc9
Elaborate param_env predicates when checking if type outlives involving projection holds
2022-01-10 00:29:06 -05:00
Jack Huey
d3aecc1001
When obligation is a sized predicate, prefer projection or object candidates instead of param_env candidates
2021-12-22 04:14:20 -05:00
LegionMammal978
375524014f
Remove in_band_lifetimes from rustc_infer
...
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-12-13 17:53:27 -05:00
Deadbeef
84b1d859c8
Revert "Auto merge of #91491 - spastorino:revert-91354, r=oli-obk"
...
This reverts commit ff2439b7b9 , reversing
changes made to 2a9e0831d6 .
2021-12-12 12:34:46 +08:00
Santiago Pastorino
85b723c4e6
Revert "Auto merge of #91354 - fee1-dead:const_env, r=spastorino"
...
This reverts commit 18bb8c61a9 , reversing
changes made to d9baa36190 .
2021-12-03 10:11:21 -03:00
Oli Scherer
a9a79f657c
Completely remove ConstnessAnd
2021-11-29 21:19:49 +08:00
Oli Scherer
a848c4ba3f
Avoid storing the ImplPolarity and Constness next to a TraitRef and use TraitPredicate instead
2021-11-29 21:19:49 +08:00
Nilstrieb
24acf86029
Fix span for non-satisfied trivial trait bounds
...
The spans for "trait bound not satisfied" errors in trivial trait bounds referenced the entire item (fn, impl, struct) before.
Now they only reference the obligation itself (`String: Copy`)
Address #90869
2021-11-14 11:38:52 +01:00
jackh726
a7c132de55
Move push_outlives_components to rustc_infer
2021-10-15 12:13:35 -04:00
jackh726
be76bdf905
Remove ToPredicate impls that use Binder::dummy
2021-09-15 20:54:50 -04:00
Niko Matsakis
947c0de028
introduce a Coerce predicate
2021-08-19 17:28:24 -04:00
Deadbeef
32390a0df6
move Constness into TraitPredicate
2021-08-13 09:26:33 +00:00
Charles Lew
d2dc4276fd
Refactor vtable format.
2021-07-20 22:14:42 +08:00
Jack Huey
5f82e22ba4
Don't rebind in transitive_bounds_that_define_assoc_type
2021-04-28 18:10:44 -04:00
Santiago Pastorino
8d17c6a85d
Anonymize late bound regions on transitive bounds that define assoc type
2021-02-08 16:47:51 -03:00
Santiago Pastorino
fd092557ce
Adapt to latest master changes by using PredicateKind
2021-02-05 18:56:57 -03:00
Santiago Pastorino
7aa602b84c
Revert "Auto merge of #79637 - spastorino:revert-trait-inheritance-self, r=Mark-Simulacrum"
...
This reverts commit b4def89d76 , reversing
changes made to 7dc1e852d4 .
2021-02-05 18:56:56 -03:00
Jack Huey
3dea68de1d
Review changes
2021-01-16 18:56:37 -05:00
Jack Huey
e76476afe4
Cleanup
2021-01-16 18:40:47 -05:00
Jack Huey
4cd6f85a07
Remove PredicateKind
2021-01-16 18:40:47 -05:00
Jack Huey
8278314a8b
Remove PredicateKind::Atom
2021-01-16 18:40:47 -05:00
Santiago Pastorino
37354ebc97
Revert "Auto merge of #79209 - spastorino:trait-inheritance-self, r=nikomatsakis"
...
This reverts commit 349b3b324d , reversing
changes made to b776d1c3e3 .
2020-12-02 12:19:38 -03:00
Santiago Pastorino
ada7c1f429
Return FxIndexSet instead of FxHashSet to avoid order errors on different platforms
2020-11-27 18:45:34 -03:00
Santiago Pastorino
28446ef19e
Inline elaborate_trait_refs_that_define_assoc_type into transitive_bounds_that_define_assoc_type
2020-11-27 11:23:52 -03:00
Santiago Pastorino
9e0538bd07
Document elaborate_trait_refs_that_define_assoc_type
2020-11-27 11:23:51 -03:00
Santiago Pastorino
2ca4964db5
Allow to self reference associated types in where clauses
2020-11-27 11:23:47 -03:00
Jonas Schievink
ee6f42ba94
Thread Constness through selection
2020-11-22 02:13:53 +01:00
Bastian Kauschke
2bf93bd852
compiler: fold by value
2020-11-16 22:34:57 +01:00
Jack Huey
f6a53b4c69
Review comments
2020-10-16 15:14:38 -04:00
Jack Huey
eba10270c6
map_bound_ref -> rebind
2020-10-16 14:29:21 -04:00
Jack Huey
dd5c9bf139
Use map_bound(_ref) instead of Binder::bind when possible
2020-10-16 12:58:50 -04:00
Matthew Jasper
f958e6c246
Separate bounds and predicates for associated/opaque types
2020-10-06 11:19:29 +01:00
Bram van den Heuvel
7dad29d686
Remove def_id field from ParamEnv
2020-09-09 10:14:31 +02:00
mark
9e5f7d5631
mv compiler to compiler/
2020-08-30 18:45:07 +03:00