Remove fields that are dead since the removal of type ascription syntax
Since `{ ident: ident }` is a parse error, these fields are dead.
This commit is contained in:
parent
90f5eab952
commit
848b0da34f
13 changed files with 13 additions and 66 deletions
|
@ -674,11 +674,6 @@ struct DiagMetadata<'ast> {
|
|||
/// they are used (in a `break` or `continue` statement)
|
||||
unused_labels: FxHashMap<NodeId, Span>,
|
||||
|
||||
/// Only used for better errors on `let x = { foo: bar };`.
|
||||
/// In the case of a parse error with `let x = { foo: bar, };`, this isn't needed, it's only
|
||||
/// needed for cases where this parses as a correct type ascription.
|
||||
current_block_could_be_bare_struct_literal: Option<Span>,
|
||||
|
||||
/// Only used for better errors on `let <pat>: <expr, not type>;`.
|
||||
current_let_binding: Option<(Span, Option<Span>, Option<Span>)>,
|
||||
|
||||
|
@ -4650,13 +4645,6 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
|
|||
self.ribs[ValueNS].push(Rib::new(RibKind::Normal));
|
||||
}
|
||||
|
||||
let prev = self.diag_metadata.current_block_could_be_bare_struct_literal.take();
|
||||
if let (true, [Stmt { kind: StmtKind::Expr(expr), .. }]) =
|
||||
(block.could_be_bare_literal, &block.stmts[..])
|
||||
&& let ExprKind::Type(..) = expr.kind
|
||||
{
|
||||
self.diag_metadata.current_block_could_be_bare_struct_literal = Some(block.span);
|
||||
}
|
||||
// Descend into the block.
|
||||
for stmt in &block.stmts {
|
||||
if let StmtKind::Item(ref item) = stmt.kind
|
||||
|
@ -4670,7 +4658,6 @@ impl<'a, 'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'a, 'ast, 'ra, 'tcx> {
|
|||
|
||||
self.visit_stmt(stmt);
|
||||
}
|
||||
self.diag_metadata.current_block_could_be_bare_struct_literal = prev;
|
||||
|
||||
// Move back up.
|
||||
self.parent_scope.module = orig_module;
|
||||
|
|
|
@ -450,7 +450,6 @@ impl<'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
|
|||
err.span_suggestion_verbose(sugg.0, sugg.1, &sugg.2, Applicability::MaybeIncorrect);
|
||||
}
|
||||
|
||||
self.suggest_bare_struct_literal(&mut err);
|
||||
self.suggest_changing_type_to_const_param(&mut err, res, source, span);
|
||||
self.explain_functions_in_pattern(&mut err, res, source);
|
||||
|
||||
|
@ -1281,19 +1280,6 @@ impl<'ast, 'ra: 'ast, 'tcx> LateResolutionVisitor<'_, 'ast, 'ra, 'tcx> {
|
|||
}
|
||||
}
|
||||
|
||||
fn suggest_bare_struct_literal(&mut self, err: &mut Diag<'_>) {
|
||||
if let Some(span) = self.diag_metadata.current_block_could_be_bare_struct_literal {
|
||||
err.multipart_suggestion(
|
||||
"you might have meant to write a `struct` literal",
|
||||
vec![
|
||||
(span.shrink_to_lo(), "{ SomeStruct ".to_string()),
|
||||
(span.shrink_to_hi(), "}".to_string()),
|
||||
],
|
||||
Applicability::HasPlaceholders,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
fn explain_functions_in_pattern(
|
||||
&mut self,
|
||||
err: &mut Diag<'_>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue