fix { x := ... } being interpreted as an object

This commit is contained in:
Mark 2023-11-30 17:53:41 +01:00
parent 48c1381194
commit d21715c2d3

View File

@ -321,23 +321,30 @@ pub fn parse_no_chain(
let name = src.next_word().to_owned(); let name = src.next_word().to_owned();
src.skip_whitespace(); src.skip_whitespace();
match src.next_char() { match src.next_char() {
Some(':') => elems.push(( Some(':') if src.next_char().is_some_and(|c| c.is_whitespace()) => elems
name, .push((
match parse(src, srca) { name,
Ok(Some(v)) => v, match parse(src, srca) {
Ok(None) => { Ok(Some(v)) => v,
return Err(CheckError::new() Ok(None) => {
.src(vec![((pos_in_src, src.get_pos(), srca).into(), None)]) return Err(CheckError::new()
.msg(format!("EOF after `:` in object"))) .src(vec![(
} (pos_in_src, src.get_pos(), srca).into(),
Err(e) => { None,
return Err(CheckError::new() )])
.src(vec![((pos_in_src, src.get_pos(), srca).into(), None)]) .msg(format!("EOF after `:` in object")))
.msg(format!("Error in statement after `:` in object")) }
.err(e)) Err(e) => {
} return Err(CheckError::new()
}, .src(vec![(
)), (pos_in_src, src.get_pos(), srca).into(),
None,
)])
.msg(format!("Error in statement after `:` in object"))
.err(e))
}
},
)),
_ => { _ => {
// not an object (or invalid syntax) // not an object (or invalid syntax)
src.set_pos(pos_in_src_after_bracket); src.set_pos(pos_in_src_after_bracket);