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" +);