Commit Graph

2015 Commits

Author SHA1 Message Date
Ayaz Hafiz
99a4e21618
Improve exhaustiveness checking heuristics for list patterns 2022-11-01 12:07:00 -05:00
Ayaz Hafiz
a58d128d9e
Cover mode when unifying variable slices 2022-11-01 12:06:59 -05:00
Ayaz Hafiz
92a3c48ce5
Implement sketching and pattern specialization for list patterns 2022-11-01 12:06:59 -05:00
Ayaz Hafiz
fbdf76e490
Report type errors in list pattern matches 2022-11-01 12:06:59 -05:00
Ayaz Hafiz
283f6e8e1e
Give localized region for expected list elem pattern 2022-11-01 12:06:59 -05:00
Ayaz
cb61f51814
Merge pull request #4441 from roc-lang/can-list-patterns
Canonicalization + Constraining of list patterns
2022-11-01 09:13:08 -05:00
Richard Feldman
50d9755758
Merge pull request #4429 from austinclem1/main
add missing indent when formatting single-quoted char in pattern
2022-10-31 17:56:06 -07:00
Richard Feldman
5e00522a47
Merge pull request #4443 from joshuawarner32/move-min_indent-to-parse-pr
Refactor Parser trait to pass min_indent
2022-10-31 17:46:05 -07:00
Ayaz Hafiz
9ab5d0efb8
Constraining of list patterns 2022-10-31 17:05:08 -05:00
Ayaz Hafiz
b0a8b85de3
Canonicalization of list patterns 2022-10-31 17:04:47 -05:00
Joshua Warner
07be8ec000
Refactor Parser trait to pass min_indent
This removes the need to explicitly pass thru min_indent when using the parser combinators.

My ultimate goal here is to evolve the current parser closer toward a purely combinator-based parser,
at which point we can more easily transition smoothly to a formal(ish) grammar, or expand the meanings of combinators
to include things like:
* Incremental (re)parsing
* Unified parsing and formatting code
* Better error recovery
* Using the main parser directly for syntax highlighting
2022-10-31 13:31:47 -07:00
Ayaz Hafiz
5e891a3501
Add comment on when heuristic can be removed 2022-10-31 09:48:25 -05:00
Ayaz Hafiz
04e8e26faf
Fix env var typo 2022-10-31 09:46:07 -05:00
Ayaz Hafiz
bb02104436
Fix typo 2022-10-31 09:44:22 -05:00
Ayaz Hafiz
b3956569a6
Add comment on inlining 2022-10-31 09:43:28 -05:00
Ayaz Hafiz
07f5d0c7fd
Clarify TODO 2022-10-31 09:39:29 -05:00
Ayaz Hafiz
a526fd92aa
inferred extension vars are material if they're not flex or empty 2022-10-31 09:38:22 -05:00
Ayaz Hafiz
4f367e2608
Clippers lose to the Thunder, I lose to Clippy 2022-10-31 09:38:22 -05:00
Ayaz Hafiz
9854f5f2ac
Print alias's underlying structures if OIOP vars are material 2022-10-31 09:38:22 -05:00
Ayaz Hafiz
e1b6e0334b
Generate OIOP vars correctly 2022-10-31 09:38:22 -05:00
Ayaz Hafiz
bedb26124d
Update load tests 2022-10-31 09:38:21 -05:00
Ayaz Hafiz
debe6332c5
Support OIOP for type aliases 2022-10-31 09:38:21 -05:00
Ayaz Hafiz
aa8a7b1ebc
Less aggressive inlining in debug builds
Being too aggressive about inlining in debug builds can result in huge
stack frames building up when inlined functions are contained in
non-tail-recursive, non-inlined function calls. This easily hits stack
overflows, so avoid it.
2022-10-31 09:38:21 -05:00
Ayaz Hafiz
91dd47c5e4
Store OIOP variables in a unique buffer 2022-10-31 09:38:21 -05:00
Ayaz Hafiz
cfe7c8e5ef
Warn on the presence of unnecessary wildcards in output positions 2022-10-31 09:38:20 -05:00
Ayaz Hafiz
d55dbbf0ae
Update load test to work around constraining bug 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
85e58440de
Allow too many args 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
8d5678151d
Implement open-in-output-position for non-alias type annotations 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
ec4285c1dd
Work around constraining bug in gen test 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
42058c3067
Add note on bug in constraining 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
e7c7eb623e
Fail builds if builtins have type errors 2022-10-31 09:37:41 -05:00
Ayaz Hafiz
bb1f4cd5e8
Fix bug in closing heuristic 2022-10-31 09:37:40 -05:00
Ayaz Hafiz
7b9ce492c3
Better estimate polarity in exhaustiveness checking 2022-10-31 09:37:40 -05:00
Ayaz Hafiz
69114cc820
Apply a heuristic for opening/closing types before exhaustiveness checking 2022-10-31 09:37:40 -05:00
Ayaz Hafiz
f3623b1e47
Close extension types extended wiht uninhabited types after their extension 2022-10-31 09:37:40 -05:00
Ayaz Hafiz
4d48ea7c2f
Materialize extension variable polarity in error type reporting 2022-10-31 09:37:40 -05:00
Ayaz Hafiz
3c15ff4694
Correctly print wildcards as appropriate in error messages 2022-10-31 09:37:39 -05:00
Ayaz Hafiz
d77080529a
Introduce polarity for extension variable printing 2022-10-31 09:37:39 -05:00
Austin Clements
5d19d28e56 formatting 2022-10-28 18:13:03 -05:00
Folkert de Vries
9f62e65892
Merge pull request #4406 from roc-lang/windows-effect-loop
Windows effects.roc
2022-10-29 00:29:35 +02:00
Austin Clements
ec81ce5ebc add test for formatter: single-quoted char pattern 2022-10-28 16:36:24 -05:00
Austin Clements
87041f8cd7 add missing indent when formatting single-quoted char in pattern 2022-10-28 14:49:50 -05:00
Richard Feldman
67a8bbd6a2
Merge pull request #4414 from roc-lang/i4412
Parse and format list patterns
2022-10-26 19:49:12 -07:00
Richard Feldman
c894d522c3
Drop some commented-out lines
Signed-off-by: Richard Feldman <oss@rtfeldman.com>
2022-10-26 22:48:37 -04:00
Richard Feldman
93c6b65a4d
Merge pull request #4409 from roc-lang/parse-single-def
Extract parse_single_def
2022-10-26 19:44:35 -07:00
Richard Feldman
719387bb0a
Merge pull request #4387 from lukewilliamboswell/std-lib-bool
updated docs for Bool.roc
2022-10-26 19:43:51 -07:00
Richard Feldman
9d5705146d
Merge pull request #4392 from lukewilliamboswell/std-docs-box-and-dict
updating docs for Box and Dict
2022-10-26 19:39:44 -07:00
Ayaz Hafiz
89867a4dc5
Add parsing error reporting for list patterns 2022-10-26 18:05:52 -05:00
Ayaz Hafiz
9bb523ce97
Format list patterns 2022-10-26 17:08:10 -05:00
Ayaz Hafiz
4d35ab9957
Parse list patterns 2022-10-26 17:03:22 -05:00