Skip to content

Commit f91bd15

Browse files
committed
Remove more diagnostics for ascription in resolve
1 parent 5cecf53 commit f91bd15

File tree

1 file changed

+8
-80
lines changed

1 file changed

+8
-80
lines changed

compiler/rustc_resolve/src/late/diagnostics.rs

Lines changed: 8 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use rustc_span::edit_distance::find_best_match_for_name;
2828
use rustc_span::edition::Edition;
2929
use rustc_span::hygiene::MacroKind;
3030
use rustc_span::symbol::{kw, sym, Ident, Symbol};
31-
use rustc_span::{BytePos, Span};
31+
use rustc_span::Span;
3232

3333
use std::iter;
3434
use std::ops::Deref;
@@ -351,18 +351,15 @@ impl<'a: 'ast, 'ast, 'tcx> LateResolutionVisitor<'a, '_, 'ast, 'tcx> {
351351
return (err, candidates);
352352
}
353353

354-
if !self.suggest_missing_let(&mut err, base_error.span) {
355-
let mut fallback =
356-
self.suggest_trait_and_bounds(&mut err, source, res, span, &base_error);
354+
let mut fallback = self.suggest_trait_and_bounds(&mut err, source, res, span, &base_error);
357355

358-
// if we have suggested using pattern matching, then don't add needless suggestions
359-
// for typos.
360-
fallback |= self.suggest_typo(&mut err, source, path, span, &base_error);
356+
// if we have suggested using pattern matching, then don't add needless suggestions
357+
// for typos.
358+
fallback |= self.suggest_typo(&mut err, source, path, span, &base_error);
361359

362-
if fallback {
363-
// Fallback label.
364-
err.span_label(base_error.span, &base_error.fallback_label);
365-
}
360+
if fallback {
361+
// Fallback label.
362+
err.span_label(base_error.span, &base_error.fallback_label);
366363
}
367364
self.err_code_special_cases(&mut err, source, path, span);
368365

@@ -1802,75 +1799,6 @@ impl<'a: 'ast, 'ast, 'tcx> LateResolutionVisitor<'a, '_, 'ast, 'tcx> {
18021799
})
18031800
}
18041801

1805-
/// Only used in a specific case of type ascription suggestions
1806-
fn get_colon_suggestion_span(&self, start: Span) -> Span {
1807-
let sm = self.r.tcx.sess.source_map();
1808-
start.to(sm.next_point(start))
1809-
}
1810-
1811-
#[instrument(level = "debug", skip(self, err))]
1812-
fn suggest_missing_let(&self, err: &mut Diagnostic, base_span: Span) -> bool {
1813-
let sm = self.r.tcx.sess.source_map();
1814-
let base_snippet = sm.span_to_snippet(base_span);
1815-
if let Some(&sp) = self.diagnostic_metadata.current_type_ascription.last() {
1816-
if let Ok(snippet) = sm.span_to_snippet(sp) {
1817-
let len = snippet.trim_end().len() as u32;
1818-
if snippet.trim() == ":" {
1819-
let colon_sp =
1820-
sp.with_lo(sp.lo() + BytePos(len - 1)).with_hi(sp.lo() + BytePos(len));
1821-
let mut show_label = true;
1822-
if sm.is_multiline(sp) {
1823-
err.span_suggestion_short(
1824-
colon_sp,
1825-
"maybe you meant to write `;` here",
1826-
";",
1827-
Applicability::MaybeIncorrect,
1828-
);
1829-
} else {
1830-
let after_colon_sp =
1831-
self.get_colon_suggestion_span(colon_sp.shrink_to_hi());
1832-
if snippet.len() == 1 {
1833-
// `foo:bar`
1834-
err.span_suggestion(
1835-
colon_sp,
1836-
"maybe you meant to write a path separator here",
1837-
"::",
1838-
Applicability::MaybeIncorrect,
1839-
);
1840-
show_label = false;
1841-
if !self
1842-
.r
1843-
.tcx
1844-
.sess
1845-
.parse_sess
1846-
.type_ascription_path_suggestions
1847-
.borrow_mut()
1848-
.insert(colon_sp)
1849-
{
1850-
err.downgrade_to_delayed_bug();
1851-
}
1852-
}
1853-
if let Ok(base_snippet) = base_snippet {
1854-
// Try to find an assignment
1855-
let eq_span = sm.span_look_ahead(after_colon_sp, Some("="), Some(50));
1856-
if let Ok(ref snippet) = sm.span_to_snippet(eq_span) && snippet == "=" {
1857-
err.span_suggestion(
1858-
base_span,
1859-
"maybe you meant to write an assignment here",
1860-
format!("let {}", base_snippet),
1861-
Applicability::MaybeIncorrect,
1862-
);
1863-
show_label = false;
1864-
}
1865-
}
1866-
}
1867-
return show_label;
1868-
}
1869-
}
1870-
}
1871-
false
1872-
}
1873-
18741802
// try to give a suggestion for this pattern: `name = blah`, which is common in other languages
18751803
// suggest `let name = blah` to introduce a new binding
18761804
fn let_binding_suggestion(&mut self, err: &mut Diagnostic, ident_span: Span) -> bool {

0 commit comments

Comments
 (0)