From c0eaf4c5f6c0101aa6f6b1db7865f9c37fc15c1b Mon Sep 17 00:00:00 2001 From: ConnorSkees <39542938+ConnorSkees@users.noreply.github.com> Date: Sat, 4 Apr 2020 03:00:38 -0400 Subject: [PATCH] allow semicolon after closing brace --- src/builtin/meta.rs | 2 +- src/lib.rs | 4 ++++ tests/misc.rs | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/builtin/meta.rs b/src/builtin/meta.rs index d0ba248..0158cee 100644 --- a/src/builtin/meta.rs +++ b/src/builtin/meta.rs @@ -137,7 +137,7 @@ pub(crate) fn register(f: &mut HashMap) { f.insert( "get-function".to_owned(), Builtin::new(|mut args, scope| { - max_args!(args, 2); + max_args!(args, 3); let name = match arg!(args, 0, "name") { Value::Ident(s, _) => s, v => return Err(format!("$name: {} is not a string.", v).into()), diff --git a/src/lib.rs b/src/lib.rs index 0bc3b40..3efc058 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -505,6 +505,10 @@ pub(crate) fn eat_expr>( if values.is_empty() { toks.next(); devour_whitespace(toks); + if toks.peek().is_some() && toks.peek().unwrap().kind == ';' { + toks.next(); + } + devour_whitespace(toks); return Ok(None); } else { // special edge case where there was no space between the colon diff --git a/tests/misc.rs b/tests/misc.rs index 0637b29..ab40a32 100644 --- a/tests/misc.rs +++ b/tests/misc.rs @@ -110,3 +110,8 @@ test!( "$base-color: #036;\na {\n color:lighten($base-color, 5%);\n}", "a {\n color: #004080;\n}\n" ); +test!( + semicolon_after_closing_brace, + "a {\n color: foo;\n};", + "a {\n color: foo;\n}\n" +);