700 Commits

Author SHA1 Message Date
ConnorSkees
34f9436163 remove unwrap in favor of if let 2020-05-23 14:03:47 -04:00
ConnorSkees
c4cfb9112e eagerly evaluate \@if conditions 2020-05-23 13:39:47 -04:00
ConnorSkees
3c97400935 remove panics on malformed @ if 2020-05-23 12:48:34 -04:00
ConnorSkees
130177d9fe allow + in selectors 2020-05-23 12:06:04 -04:00
ConnorSkees
eca952b201 handle toplevel closing curly brace 2020-05-23 11:59:04 -04:00
ConnorSkees
a3548b0044 remove panic for missing equal 2020-05-23 11:50:25 -04:00
ConnorSkees
2a79fa2a40 implement some of the more esoteric binary ops
addition, subtraction, and multiplication of functions and maps, along
with correct error messages and tests
2020-05-22 23:30:48 -04:00
ConnorSkees
d4acb3f014 test for double comma in fn args 2020-05-22 22:24:24 -04:00
ConnorSkees
b82be09b95 remove panic on invalid fn args 2020-05-22 22:06:33 -04:00
ConnorSkees
d655879975 test for uppercase escapes in at rules 2020-05-22 21:56:19 -04:00
ConnorSkees
b081fe780b handle escaped @ else
this commit makes the assumption that
https://github.com/sass/dart-sass/issues/1011 is unintended behavior
and may need to be reverted should dart-sass decide it is intended
2020-05-22 21:34:22 -04:00
ConnorSkees
c31684f8c7 test for ++ and +/ ops 2020-05-22 20:58:02 -04:00
ConnorSkees
7261f57e01 emit proper error for map as rhs of addition 2020-05-22 20:47:53 -04:00
ConnorSkees
80e32b4290 emit proper error for map as lhs of addition 2020-05-22 20:34:41 -04:00
ConnorSkees
469dafd07b test for - and _ in get-function 2020-05-22 20:23:35 -04:00
ConnorSkees
3e2689a4cb improve number parsing code coverage 2020-05-21 18:25:42 -04:00
ConnorSkees
117dc453e2 test for toplevel @ and & 2020-05-21 14:21:40 -04:00
ConnorSkees
ff8447fd7e handle operators as part of binops 2020-05-21 14:07:46 -04:00
ConnorSkees
2bd8232a00 emit proper error for toplevel " 2020-05-21 13:39:37 -04:00
ConnorSkees
4cba3dfd4e handle ~ in values 2020-05-21 13:36:55 -04:00
ConnorSkees
c714d52775 handle | in values 2020-05-21 13:31:03 -04:00
ConnorSkees
c68576bb23 refactor parsing of toplevel variables 2020-05-21 13:25:37 -04:00
ConnorSkees
6b9f68922f allow non-ascii alphanumeric characters in selectors 2020-05-21 13:09:20 -04:00
ConnorSkees
b94a2403d0 fix panics related to toplevel hash and quotes 2020-05-21 12:21:52 -04:00
ConnorSkees
67091115db better handle - at the start of idents 2020-05-21 12:06:42 -04:00
ConnorSkees
709b95d035 improve span information in values 2020-05-21 11:48:38 -04:00
ConnorSkees
0c144e22ba handle ` in values 2020-05-21 01:07:34 -04:00
ConnorSkees
a63e139cd8 handle ` at toplevel 2020-05-21 01:04:11 -04:00
ConnorSkees
28d5fdf636 handle ! at toplevel 2020-05-21 01:01:02 -04:00
ConnorSkees
c1ed4b3121 handle , at toplevel 2020-05-21 00:46:06 -04:00
ConnorSkees
2faf9fcb60 improve error handling of variables in styles 2020-05-21 00:41:04 -04:00
ConnorSkees
d300d4e1fc test for ] in value 2020-05-21 00:09:52 -04:00
ConnorSkees
de2173cc31 refactor parsing of toplevel comments 2020-05-20 21:01:07 -04:00
ConnorSkees
10a30b4c65 test for comma separated list as map key 2020-05-20 20:35:59 -04:00
ConnorSkees
d39a45090a separate media and unknown at rules 2020-05-20 20:13:53 -04:00
ConnorSkees
eb7fe52074 minor cleanup 2020-05-19 18:28:18 -04:00
ConnorSkees
9a3035049a error tests for to-{upper,lower}-case 2020-05-19 00:21:43 -04:00
ConnorSkees
dae7a5028d add map fn tests for empty lists 2020-05-18 17:56:25 -04:00
ConnorSkees
f8b8025d7c fix panic when missing colon in style 2020-05-17 11:09:21 -04:00
ConnorSkees
6e7f1cc319 remove some panicking 2020-05-17 00:08:50 -04:00
ConnorSkees
eb2f3ebe5a remove ;; in tests 2020-05-16 22:46:13 -04:00
ConnorSkees
c07bb7ecce refactor == and != order of operations 2020-05-16 22:43:13 -04:00
ConnorSkees
697ff3d12f error messages for values beginnning with #
prior to this commit, error messages that occurred within idents
beginning with interpolation would be swallowed by error messages for
hex (largely, "Expected identifier.")
2020-05-16 19:25:11 -04:00
ConnorSkees
f3e7abdaba allow units to begin with escape sequences 2020-05-16 18:54:42 -04:00
ConnorSkees
2d0a9abb13 parse selectors that grow larger from interpolation 2020-05-16 17:28:30 -04:00
ConnorSkees
2db3398fe2 properly handle escaped newlines in quoted strings 2020-05-16 17:20:53 -04:00
ConnorSkees
09e6568c39 update rustfmt 2020-05-16 16:56:17 -04:00
ConnorSkees
dcdd2a1cb1 edge case in which @ include had no args AND no semicolon 2020-05-16 16:54:34 -04:00
ConnorSkees
223dade62b Emit proper error for escape sequence overflow
Before this commit, escape sequences above std::char::MAX ('\u{10ffff}')
would overflow and cause a panic. This commit replaces an `unwrap` with
`ok_or` and a clearer error message. This message will likely change
in the future in order to better conform to the `dart-sass` implementation
which currently also fails to cleanly handle this overflow.

See https://github.com/kaj/rsass/pull/73
2020-05-16 16:22:33 -04:00
ConnorSkees
eea8bdbc25 allow escapes at the start of selectors 2020-05-16 16:15:11 -04:00