Auto merge of #88598 - estebank:type-ascription-can-die-in-a-fire, r=wesleywiser
Detect bare blocks with type ascription that were meant to be a `struct` literal Address part of #34255. Potential improvement: silence the other knock down errors in `issue-34255-1.rs`.
This commit is contained in:
commit
b4e8596e3e
13 changed files with 67 additions and 5 deletions
|
@ -558,6 +558,14 @@ pub struct Block {
|
|||
pub rules: BlockCheckMode,
|
||||
pub span: Span,
|
||||
pub tokens: Option<LazyTokenStream>,
|
||||
/// The following *isn't* a parse error, but will cause multiple errors in following stages.
|
||||
/// ```
|
||||
/// let x = {
|
||||
/// foo: var
|
||||
/// };
|
||||
/// ```
|
||||
/// #34255
|
||||
pub could_be_bare_literal: bool,
|
||||
}
|
||||
|
||||
/// A match pattern.
|
||||
|
|
|
@ -949,7 +949,7 @@ pub fn noop_visit_mt<T: MutVisitor>(MutTy { ty, mutbl: _ }: &mut MutTy, vis: &mu
|
|||
}
|
||||
|
||||
pub fn noop_visit_block<T: MutVisitor>(block: &mut P<Block>, vis: &mut T) {
|
||||
let Block { id, stmts, rules: _, span, tokens } = block.deref_mut();
|
||||
let Block { id, stmts, rules: _, span, tokens, could_be_bare_literal: _ } = block.deref_mut();
|
||||
vis.visit_id(id);
|
||||
stmts.flat_map_in_place(|stmt| vis.flat_map_stmt(stmt));
|
||||
vis.visit_span(span);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue