diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs
index 39651bd5e67..1a77057939f 100644
--- a/compiler/rustc_parse/src/parser/diagnostics.rs
+++ b/compiler/rustc_parse/src/parser/diagnostics.rs
@@ -1959,11 +1959,11 @@ impl<'a> Parser<'a> {
                 if token::EqEq == snapshot.token.kind {
                     err.span_suggestion(
                         snapshot.token.span,
-                        "replace `==` with `=`",
+                        "if you meant to use an associated type binding, replace `==` with `=`",
                         "=".to_string(),
                         Applicability::MaybeIncorrect,
                     );
-                    let value = self.mk_expr_err(expr.span);
+                    let value = self.mk_expr_err(start.to(expr.span));
                     err.emit();
                     return Ok(GenericArg::Const(AnonConst { id: ast::DUMMY_NODE_ID, value }));
                 } else if token::Comma == self.token.kind || self.token.kind.should_end_const_arg()
diff --git a/src/test/ui/const-generics/issues/issue-87493.stderr b/src/test/ui/const-generics/issues/issue-87493.stderr
index b1ac08b51b5..8f92eeaffd1 100644
--- a/src/test/ui/const-generics/issues/issue-87493.stderr
+++ b/src/test/ui/const-generics/issues/issue-87493.stderr
@@ -2,10 +2,12 @@ error: expected one of `,` or `>`, found `==`
   --> $DIR/issue-87493.rs:8:22
    |
 LL |     T: MyTrait<Assoc == S::Assoc>,
-   |                      ^^
-   |                      |
-   |                      expected one of `,` or `>`
-   |                      help: replace `==` with `=`: `=`
+   |                      ^^ expected one of `,` or `>`
+   |
+help: if you meant to use an associated type binding, replace `==` with `=`
+   |
+LL |     T: MyTrait<Assoc = S::Assoc>,
+   |                      ~
 
 error[E0107]: this trait takes 0 generic arguments but 1 generic argument was supplied
   --> $DIR/issue-87493.rs:8:8