diff options
| author | Michael Goulet <michael@errs.io> | 2022-06-05 17:37:45 -0700 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-06-11 16:27:01 -0700 |
| commit | 9c47afe9fac56b71644c91ec91debd9a1f4424b1 (patch) | |
| tree | f502ccea3a65640b1b553baa719ed615045e8143 /compiler/rustc_trait_selection/src/traits | |
| parent | 8506b7d4e081cf99751022440147e9ac4845c99d (diff) | |
Handle empty where-clause better
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs index 185f500808f..e58451cce82 100644 --- a/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs +++ b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs @@ -324,7 +324,7 @@ pub trait InferCtxtExt<'tcx> { fn predicate_constraint(generics: &hir::Generics<'_>, pred: String) -> (Span, String) { ( generics.tail_span_for_predicate_suggestion(), - format!("{} {}", if generics.has_where_clause { "," } else { " where" }, pred,), + format!("{} {}", generics.add_where_or_trailing_comma(), pred), ) } @@ -339,15 +339,16 @@ fn suggest_restriction<'tcx>( fn_sig: Option<&hir::FnSig<'_>>, projection: Option<&ty::ProjectionTy<'_>>, trait_pred: ty::PolyTraitPredicate<'tcx>, - super_traits: Option<(&Ident, &hir::GenericBounds<'_>)>, -) { // When we are dealing with a trait, `super_traits` will be `Some`: // Given `trait T: A + B + C {}` // - ^^^^^^^^^ GenericBounds // | // &Ident - let span = generics.span_for_predicates_or_empty_place(); - if span.from_expansion() || span.desugaring_kind().is_some() { + super_traits: Option<(&Ident, &hir::GenericBounds<'_>)>, +) { + if generics.where_clause_span.from_expansion() + || generics.where_clause_span.desugaring_kind().is_some() + { return; } // Given `fn foo(t: impl Trait)` where `Trait` requires assoc type `A`... |
