494 Commits

Author SHA1 Message Date
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
ConnorSkees
374e9f9eb4 correctly parse idents starting with interpolation 2020-05-14 00:10:24 -04:00
ConnorSkees
0cbdc67f06 improve scoping with regard to function variables existing 2020-05-13 01:32:29 -04:00
ConnorSkees
425c36be86 improve tests for feature-exists 2020-05-13 00:19:21 -04:00
ConnorSkees
5b69ad2659 special functions are always lowercased 2020-05-13 00:16:36 -04:00
ConnorSkees
96e916e750 handle negative values in @for 2020-05-02 15:11:58 -04:00
ConnorSkees
1d518efeaf refactor lowercasing of idents
avoid creating more strings than necessary
2020-04-30 19:43:59 -04:00