Rollup merge of #100382 - jackh726:gat-self-outlives-input, r=compiler-errors
Make the GATS self outlives error take into GATs in the inputs Before, the reasoning was that outlives should factor in to the outlives error, because that value is produced and inputs aren't. However, this is potentially confusing, and we can just require this for now and relax it later if we need. GATs in where clauses still don't count for the self outlives error, and I've added a test for that. This now errors: ```rust trait Input { type Item<'a>; //~^ missing required fn takes_item<'a>(&'a self, item: Self::Item<'a>); } ``` I've also added a test that this does not: ```rust trait WhereClause { type Item<'a>; fn takes_item<'a>(&'a self) where Self::Item<'a>: ; } ``` r? ``@compiler-errors``
This commit is contained in:
commit
e568cb45fe
3 changed files with 26 additions and 2 deletions
|
@ -387,7 +387,7 @@ fn check_gat_where_clauses(tcx: TyCtxt<'_>, associated_items: &[hir::TraitItemRe
|
|||
tcx,
|
||||
param_env,
|
||||
item_hir_id,
|
||||
sig.output(),
|
||||
sig.inputs_and_output,
|
||||
// We also assume that all of the function signature's parameter types
|
||||
// are well formed.
|
||||
&sig.inputs().iter().copied().collect(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue