Commit graph

3235 commits

Author SHA1 Message Date
Folkert
148d24662e
use capacity instead of length in decref 2023-01-08 22:01:35 +01:00
Folkert
c2ddeb0de0
fix and test as pattern type inference 2023-01-08 16:40:03 +01:00
Folkert
57f2233278
cleanup 2023-01-08 15:47:56 +01:00
Joshua Warner
94070e8ba6
Improve parsing of scalar literals
* Unify parsing of string literals and scalar literals, to (e.g.) ensure escapes are handled uniformly. Notably, this makes unicode escapes valid in scalar literals.
* Add a variety of custom error messages about specific failure cases of parsing string/scalar literals. For example, if we're expecting a string (e.g. a package name in the header) and the user tried using single quotes, give a clear message about that.
* Fix formatting of unicode escapes (they previously used {}, now correctly use () to match roc strings)
2023-01-07 15:12:52 -08:00
J.Teeuwissen
a11d94aee2
Replaced equality check with enum 2023-01-06 08:55:13 +01:00
J.Teeuwissen
be73d3cfc4
Removed ! 2023-01-06 08:54:44 +01:00
Folkert de Vries
2a8c08e77e
Merge pull request #4855 from roc-lang/weakening-1
Print weak variables in tests and mark constraints that can't be generalized
2023-01-05 23:09:47 +01:00
Folkert de Vries
6989eca6f0
Merge pull request #4848 from roc-lang/intern-layouts-4
Inline interners into the layout interner module
2023-01-05 23:08:37 +01:00
Ayaz
4ff7c13ab3
Merge pull request #4847 from roc-lang/intern-layouts-3
Wrap layout interners in own trait
2023-01-05 16:07:46 -06:00
J.Teeuwissen
1f10d0cb92
Added traits and updated remaining borrowed 2023-01-05 12:02:20 +01:00
Ayaz
314e2d8707
Merge pull request #4846 from joshuawarner32/lenient-records
Be more lenient with indentation in record parsing
2023-01-04 17:06:17 -06:00
Ayaz Hafiz
bcfb258db8
Add a bit to mark syntactically-generalizable types 2023-01-04 17:02:20 -06:00
Ayaz Hafiz
3b0e2429e6
Support printing weak type variables in tests
Unbound type variables that are not at the generalization rank will now
be printed as `w_a` in solve tests.
2023-01-04 16:24:19 -06:00
Brendan Hansknecht
b79c855f15
enable using both cargo-fuzz and afl.rs for fuzzing 2023-01-04 11:45:47 -08:00
J.Teeuwissen
09f9df1f40
specification 2023-01-04 15:43:21 +01:00
J.Teeuwissen
6ec977bf1c
imports 2023-01-04 13:34:31 +01:00
J.Teeuwissen
6c95bc1fb9
replace borrowed boolean with ownership enum 2023-01-04 13:30:42 +01:00
Ayaz Hafiz
50826d1a83
Inline interners into the layout interner module
I realized that we'll need to make the layout interner more complicated
to support things like recursive pointers pointing to their parents and
to support lambda set layout caching. Since the layout interner is the
only user of intern crate right now anyway, just inline the whole thing.
2023-01-03 14:19:39 -06:00
Ayaz Hafiz
82e6982196
Requiring sizing layout interner for traits 2023-01-03 13:46:20 -06:00
Ayaz Hafiz
69d5320958
Fix dec reference 2023-01-03 12:22:04 -06:00
Ayaz Hafiz
df6672e460
Support f32, f64, dec, and dispatched interned const layouts 2023-01-03 12:19:42 -06:00
Ayaz Hafiz
fdbc0ebdad
Thread LayoutInterner trait through 2023-01-03 11:48:46 -06:00
Ayaz Hafiz
b1424afefd
Cache many layouts into interner by default 2023-01-03 11:45:48 -06:00
Ayaz Hafiz
b60d5c0251
Push wrapped layout interners through 2023-01-03 10:51:33 -06:00
Ayaz Hafiz
947158b17e
Stub out layout interners into own module 2023-01-03 10:07:12 -06:00
Joshua Warner
07ebc81cba
Be more lenient with indentation in record parsing
... and extract a shared helper with collection_trailing_sep_e, thereby resolving some inconsistencies with normal collection parsing.

... and delete some dead code while I'm at it
2023-01-02 18:53:15 -08:00
Joshua Warner
0da50a612d
Be more lenient with required indentation in collections
... and also remove a bunch of now-dead errors that can't be triggered.
2023-01-01 17:49:51 -08:00
Ayaz
9171799c67
Merge pull request #4841 from roc-lang/parse-pattern-as
Parse pattern as
2022-12-31 13:19:57 -06:00
Folkert
2e27746413
can for list .. as 2022-12-31 16:00:40 +01:00
Folkert
905341d849
can for normal (no-list) as 2022-12-31 15:46:11 +01:00
Richard Feldman
ccbd6ad593
Merge pull request #4838 from roc-lang/more-str-docs
Minor `Str` improvements
2022-12-31 01:58:50 -05:00
Richard Feldman
879b957676
Delete unused branch (it never got hit on CI) 2022-12-30 22:40:45 -05:00
Folkert
06cfdd71cc
formatting 2022-12-30 23:27:06 +01:00
Folkert
c1c8328e25
update tests 2022-12-30 23:21:41 +01:00
Folkert
8305d078a0
add as for list rest patterns 2022-12-30 23:17:29 +01:00
Folkert
aff70bb6bd
refactor PatternAs 2022-12-30 18:22:10 +01:00
Folkert
e9196f3c0b
parse and format pattern as 2022-12-30 17:50:17 +01:00
Richard Feldman
1d2b095814
Verify that all builtin types are exposed 2022-12-29 20:48:55 -05:00
Richard Feldman
8e2eb2b28d
Check if a branch is unreachable 2022-12-29 20:48:45 -05:00
Richard Feldman
d4baf0ab37
Rename a constant 2022-12-29 20:48:30 -05:00
Ayaz Hafiz
68a1589663
Unwrap interned layout 2022-12-29 18:48:00 -06:00
Ayaz Hafiz
1ae3c3b0f8
Fix type error in niche unpacking 2022-12-29 18:45:20 -06:00
Ayaz Hafiz
ec7ee375d3
Fix import in wasm gen 2022-12-29 18:45:01 -06:00
Ayaz Hafiz
bf12e9e928
Lift docs for captures niches 2022-12-29 18:45:00 -06:00
Ayaz Hafiz
6722dc3b84
Hide away the niche representation 2022-12-29 18:44:39 -06:00
Ayaz Hafiz
321ac0b06f
s/CapturesNiche/Captures 2022-12-29 18:43:45 -06:00
Ayaz Hafiz
039bab65f5
Remove unused imports 2022-12-29 18:43:28 -06:00
Ayaz Hafiz
972046445b
Lift Niche from just captures-niche to generic niche 2022-12-29 18:43:26 -06:00
Ayaz
ea53a50447
Merge pull request #4836 from roc-lang/intern-layouts-2
Intern list element layouts and thread mut layout interner through LLVM backend
2022-12-29 18:41:35 -06:00
Ayaz
7076c889a5
Merge pull request #4828 from roc-lang/refactor-build
Refactor build
2022-12-29 18:41:22 -06:00