diff options
| author | bors <bors@rust-lang.org> | 2021-09-04 01:40:36 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-09-04 01:40:36 +0000 |
| commit | b4e8596e3e78395543747ebaba26b49f6a478aa8 (patch) | |
| tree | c782e430605f5b820e4c4aaa448493bf706eccd2 /compiler/rustc_ast/src | |
| parent | 03c775c95596cbd92f2b1e8ca98e7addfa3eade2 (diff) | |
| parent | 12ce6e9c60c662dc7181b70021145f191c0f9f3e (diff) | |
| download | rust-b4e8596e3e78395543747ebaba26b49f6a478aa8.tar.gz rust-b4e8596e3e78395543747ebaba26b49f6a478aa8.zip | |
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`.
Diffstat (limited to 'compiler/rustc_ast/src')
| -rw-r--r-- | compiler/rustc_ast/src/ast.rs | 8 | ||||
| -rw-r--r-- | compiler/rustc_ast/src/mut_visit.rs | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_ast/src/ast.rs b/compiler/rustc_ast/src/ast.rs index 443698a796d..b92c5fa0727 100644 --- a/compiler/rustc_ast/src/ast.rs +++ b/compiler/rustc_ast/src/ast.rs @@ -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. diff --git a/compiler/rustc_ast/src/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs index 0231bca7aea..2ec941cbb24 100644 --- a/compiler/rustc_ast/src/mut_visit.rs +++ b/compiler/rustc_ast/src/mut_visit.rs @@ -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); |
