Chad Stearns
ed17d59743
cargo fmt
2020-01-19 21:53:15 -05:00
Chad Stearns
f7d6230c3e
Comply with clippy and use struct instead of tuple
2020-01-19 21:47:02 -05:00
Chad Stearns
89964f9e66
Resolving conflicts with trunk
2020-01-19 16:37:58 -05:00
Chad Stearns
146583e7c6
When branches have a guard
2020-01-19 14:17:14 -05:00
Richard Feldman
99188cfa36
Reproduce tag in annotation parsing bug
2020-01-18 18:45:05 -05:00
Richard Feldman
a4e238b09c
Merge remote-tracking branch 'origin/trunk' into case-multi-patterns
2020-01-11 13:10:09 -05:00
Folkert
dd240cf53a
typecheck tags with arguments
...
also fixes an issue where private tags in patterns would not have the @ symbol in their name
2020-01-09 13:20:21 +01:00
Richard Feldman
865fd41cdd
Fix comment
2020-01-08 22:15:36 -05:00
Stoeffel
150b75721c
allow alternatives on all branches.
2020-01-08 12:58:40 +01:00
Stoeffel
a98113c88d
don't use a tuple to ensure non-emptiness
2020-01-08 11:05:53 +01:00
Stoeffel
4fce01b57a
separate test for alternatives in branch
2020-01-08 09:34:27 +01:00
Stoeffel
505effd1d9
basic parsing of alternative cases in when .. in
2020-01-08 08:53:48 +01:00
Stoeffel
3a1d905b66
one or more patterns in branches
...
Modify ast to allow mutliple pattern per branch in when.
when animal is
Dog x | Fox x => "bark"
Cat x => "miau"
2020-01-08 06:39:25 +01:00
Richard Feldman
3509390761
Test open tag union annotations
2020-01-06 21:36:38 -05:00
Richard Feldman
cdf98c21e9
Add tests for parsing tag annotations
2020-01-06 21:36:38 -05:00
Richard Feldman
2071595287
Un-qualify TypeAnnotation in tests
2020-01-06 21:36:38 -05:00
Richard Feldman
ca302cf17c
Format out some newlines
2020-01-06 21:36:38 -05:00
Richard Feldman
2eb7108faa
Reproduce private tag parsing bug
2020-01-06 21:36:38 -05:00
Richard Feldman
df4e1c250e
Reproduce failing tag pattern
2020-01-05 14:20:48 -05:00
Richard Feldman
7fa77e1060
Test parsing record updates
2020-01-05 00:36:49 -05:00
Richard Feldman
748d57f523
Parse record updates
2020-01-05 00:36:49 -05:00
Richard Feldman
56df170be6
Reproduce parsing failure on [ ]
2019-12-31 20:20:58 -05:00
Chad Stearns
844ca0a50e
Changed instances of 'Case' in the code to 'When'
2019-12-23 17:41:19 -05:00
Chad Stearns
62a004c103
Case is to when is
2019-12-23 17:17:04 -05:00
Chad Stearns
9a5b6a03b4
case when to case is
2019-12-23 17:08:53 -05:00
Richard Feldman
d0fa8bf857
Use commas between function arguments
2019-12-18 21:50:45 -05:00
Richard Feldman
d73b8ca1fc
Remove UnqualifiedIdent
2019-12-16 21:29:03 -05:00
Folkert
35c8b9b5c9
Parse function type signatures
2019-12-13 22:52:49 +01:00
Folkert
502021d955
Always parse type signatures in let blocks.
...
Formerly, this would not parse
foo : Int
foo = 4
While this would
bar = 3
foo : Int
foo = 4
Now, the first def can also be a type annotation.
This change performs some code duplication. This can probably be
abstracted/unified, but I'm not sure how to do that in a clean way.
2019-12-13 19:53:46 +01:00
Richard Feldman
37422c6a76
Add failing tests for hex/octal/binary
2019-12-07 02:26:08 -05:00
Richard Feldman
ba92480d97
Reorganize can/ module
2019-12-05 19:51:56 -05:00
Richard Feldman
b3bdbd9d98
Reproduce subtraction parsing bug
2019-12-05 19:31:10 -05:00
Richard Feldman
59dc729209
Fix unicode parsing bug.
2019-12-04 21:29:50 -05:00
Richard Feldman
1d18f4cc85
Use private/global tags and Access over Field
2019-12-02 18:36:59 -05:00
Richard Feldman
be1e83dd6d
Use crate:: prefix a bunch.
2019-11-27 22:11:40 -05:00
Richard Feldman
b2e19ffe72
Reproduce failing module_defs parse
2019-11-27 21:14:22 -05:00
Richard Feldman
145d985c2d
Add failing test for nested module parsing
2019-11-27 17:21:08 -05:00
Richard Feldman
4926bfbc3a
Reorganize fmt and module
2019-11-25 20:42:44 -05:00
Richard Feldman
8e0fb89f66
Introduce Expr::ParensAround
2019-11-22 00:21:32 -05:00
Folkert
848b067556
allow pattern matching on records
...
there are a couple of cases here that are interesting:
- assigned fields, like `{ x: y }` should never occur as a pattern.
- what whitespace can occur now that block comments are removed? In elm, record patters have to be on a single line. For instance this gives a parse error:
```elm
type alias Model =
{ count : Int, value : Int }
x model =
case model of
{ count
-- bar
, value
}
->
2
```
but its equivalent in Roc with the current parser accepts both newlines and
line comments in record patterns, so this is accepted:
```
x model =
case model with
{ count
# bar
, value
}
->
2
```
That seems fine, but just want to
check that is desired.
2019-11-20 14:51:06 +01:00
Richard Feldman
60ee53080a
Reproduce malformed argument bug
2019-11-16 22:39:25 -05:00
Richard Feldman
3a4bc0b311
Test unary ops with parens
2019-11-08 00:09:38 -05:00
Richard Feldman
97d424f99b
Unary ops and case canonicalization compile!
2019-11-08 00:07:32 -05:00
Richard Feldman
7ab7fdb88c
Add unary operators
2019-11-04 21:25:55 -05:00
Richard Feldman
7e910532c5
Fix parsing for case-expresison number literals
2019-10-30 20:00:35 +01:00
Richard Feldman
61e4ae83d9
Restore two_branch_case test
2019-10-30 19:58:21 +01:00
Richard Feldman
39f4057dfa
Fix column number in some parsing tests
2019-10-30 02:36:35 -04:00
Richard Feldman
abdc19cf8e
Fix some test compilation errors
2019-10-29 18:26:18 -04:00
Richard Feldman
f738d9db80
Revise Def structure
2019-10-26 15:31:39 -04:00
Richard Feldman
eeb2bb376c
Code gen ints and floats
2019-10-21 20:12:37 -04:00