Point at return type obligations instead of at fn ident
This commit is contained in:
parent
972ae5afe5
commit
8d48597b76
2 changed files with 5 additions and 5 deletions
|
|
@ -530,7 +530,7 @@ fn check_where_clauses<'tcx, 'fcx>(
|
|||
fcx: &FnCtxt<'fcx, 'tcx>,
|
||||
span: Span,
|
||||
def_id: DefId,
|
||||
return_ty: Option<Ty<'tcx>>,
|
||||
return_ty: Option<(Ty<'tcx>, Span)>,
|
||||
) {
|
||||
debug!("check_where_clauses(def_id={:?}, return_ty={:?})", def_id, return_ty);
|
||||
|
||||
|
|
@ -664,7 +664,7 @@ fn check_where_clauses<'tcx, 'fcx>(
|
|||
|
||||
let mut predicates = predicates.instantiate_identity(fcx.tcx);
|
||||
|
||||
if let Some(return_ty) = return_ty {
|
||||
if let Some((return_ty, span)) = return_ty {
|
||||
predicates.predicates.extend(check_opaque_types(tcx, fcx, def_id, span, return_ty));
|
||||
}
|
||||
|
||||
|
|
@ -708,7 +708,7 @@ fn check_fn_or_method<'fcx, 'tcx>(
|
|||
// FIXME(#25759) return types should not be implied bounds
|
||||
implied_bounds.push(sig.output());
|
||||
|
||||
check_where_clauses(tcx, fcx, span, def_id, Some(sig.output()));
|
||||
check_where_clauses(tcx, fcx, span, def_id, Some((sig.output(), hir_sig.decl.output.span())));
|
||||
}
|
||||
|
||||
/// Checks "defining uses" of opaque `impl Trait` types to ensure that they meet the restrictions
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
error: non-defining opaque type use in defining scope
|
||||
--> $DIR/generic_duplicate_lifetime_param.rs:7:4
|
||||
--> $DIR/generic_duplicate_lifetime_param.rs:7:26
|
||||
|
|
||||
LL | fn one<'a>(t: &'a ()) -> Two<'a, 'a> {
|
||||
| ^^^
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
note: lifetime used multiple times
|
||||
--> $DIR/generic_duplicate_lifetime_param.rs:5:10
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue