about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-02-09 17:39:28 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-03-28 16:31:52 +0000
commit3136bfef9319a40c95efc38409ad3e57d40882dd (patch)
tree08e811fb648b2142dc8795789624a335cc5ba17d /compiler
parentd5b6510bfb8484a964428fe44e2a66eebb15e66e (diff)
downloadrust-3136bfef9319a40c95efc38409ad3e57d40882dd.tar.gz
rust-3136bfef9319a40c95efc38409ad3e57d40882dd.zip
Special case the situation where the previous span is the same as the new one
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_typeck/src/collect/type_of.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_typeck/src/collect/type_of.rs b/compiler/rustc_typeck/src/collect/type_of.rs
index 4e1edd17194..95d1b6a15f5 100644
--- a/compiler/rustc_typeck/src/collect/type_of.rs
+++ b/compiler/rustc_typeck/src/collect/type_of.rs
@@ -610,7 +610,11 @@ fn find_opaque_ty_constraints(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Ty<'_> {
                             concrete_type.span,
                             format!("expected `{}`, got `{}`", prev.ty, concrete_type.ty),
                         );
-                        err.span_note(prev.span, "previous use here");
+                        if prev.span == concrete_type.span {
+                            err.span_label(prev.span, "this expression supplies two conflicting concrete types for the same opaque type");
+                        } else {
+                            err.span_note(prev.span, "previous use here");
+                        }
                         err.emit();
                     }
                 } else {