mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
fix error of RangeFrom in for-loop
This commit is contained in:
parent
978e3e384b
commit
2bebdf0b37
3 changed files with 130 additions and 1 deletions
|
@ -110,7 +110,13 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
|
|||
p.bump();
|
||||
block_expr(p, Some(m))
|
||||
}
|
||||
T!['{'] => block_expr(p, None),
|
||||
T!['{'] => {
|
||||
if r.forbid_structs {
|
||||
return None;
|
||||
} else {
|
||||
block_expr(p, None)
|
||||
}
|
||||
}
|
||||
T![return] => return_expr(p),
|
||||
T![continue] => continue_expr(p),
|
||||
T![break] => break_expr(p, r),
|
||||
|
@ -307,6 +313,16 @@ fn while_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
|
|||
// fn foo() {
|
||||
// for x in [] {};
|
||||
// }
|
||||
|
||||
// test for_range_block
|
||||
// fn foo() {
|
||||
// for x in 0 .. {
|
||||
// break;
|
||||
// }
|
||||
// for _x in 0 .. (0 .. {1 + 2}).sum::<u32>() {
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
|
||||
assert!(p.at(T![for]));
|
||||
let m = m.unwrap_or_else(|| p.start());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue