diff --git a/src/utils.rs b/src/utils.rs index 840705b..77d9db5 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -393,7 +393,7 @@ pub(crate) fn eat_ident>( toks.next(); } if n.is_empty() { - let c = toks.next().unwrap().kind; + let c = toks.next().ok_or("expected \"{\".")?.kind; if (c == '-' && !s.is_empty()) || c.is_ascii_alphabetic() { s.push(c); } else { diff --git a/tests/error.rs b/tests/error.rs index b6b9792..17e47a9 100644 --- a/tests/error.rs +++ b/tests/error.rs @@ -27,3 +27,12 @@ error!( question_mark_inside_value, "a {foo: bar?}", "Error: expected \";\"." ); +// TODO: special parsing rules for variable names +// error!( +// interpolation_in_variable_declaration, +// "$base-#{lor}: #036;", "Error: expected \":\"." +// ); +error!( + backslash_as_last_character, + "a {colo\\: red;}", "Error: expected \"{\"." +);