span: Span,
) -> bool {
if let Some(suggestion) = suggestion {
+ // We shouldn't suggest underscore.
+ if suggestion.candidate == kw::Underscore {
+ return false;
+ }
+
let msg = format!(
"{} {} with a similar name exists",
suggestion.res.article(),
--- /dev/null
+const _: () = ();
+
+fn main() {
+ a // Shouldn't suggest underscore
+ //~^ ERROR: cannot find value `a` in this scope
+}
+
+trait Unknown {}
+
+#[allow(unused_imports)]
+use Unknown as _;
+
+fn foo<T: A>(x: T) {} // Shouldn't suggest underscore
+//~^ ERROR: cannot find trait `A` in this scope
--- /dev/null
+error[E0425]: cannot find value `a` in this scope
+ --> $DIR/typo-suggestion-named-underscore.rs:4:5
+ |
+LL | a // Shouldn't suggest underscore
+ | ^ not found in this scope
+
+error[E0405]: cannot find trait `A` in this scope
+ --> $DIR/typo-suggestion-named-underscore.rs:13:11
+ |
+LL | fn foo<T: A>(x: T) {} // Shouldn't suggest underscore
+ | ^ not found in this scope
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0405, E0425.
+For more information about an error, try `rustc --explain E0405`.