Commit graph

207 commits

Author SHA1 Message Date
Folkert
055b01c463 rewrite uniqueness logic 2020-06-24 23:06:34 +02:00
Richard Feldman
f350c0ed52 Fix List.len monomorphization 2020-06-23 21:14:23 -04:00
Richard Feldman
dd8dff0f9e Fix some unary ops 2020-06-23 19:17:39 -04:00
Richard Feldman
88990c8711 Move Int and Float modules into Num 2020-06-22 23:25:38 -04:00
Richard Feldman
56c637e399 Fix some constraint gen 2020-06-21 16:48:44 -04:00
Richard Feldman
461e166254 wip 2020-06-20 13:59:04 -04:00
Richard Feldman
dec5c3a062 Get low-level ops compiling 2020-06-19 20:07:04 -04:00
Richard Feldman
e49b43d376 Extract constrain_imports & pre_constrain_imports 2020-06-19 11:02:10 -04:00
Richard Feldman
1b3b9ee1c4 Merge remote-tracking branch 'origin/trunk' into specialize-separately 2020-06-13 23:54:30 -04:00
Richard Feldman
269da82840 Make VarStore no longer use atomics 2020-06-13 21:59:01 -04:00
Richard Feldman
245a9fc951 Merge remote-tracking branch 'origin/trunk' into specialize-separately 2020-06-13 21:03:38 -04:00
Richard Feldman
a4338f0406 Remove lots of unnecessary clones (thanks clippy!) 2020-06-07 15:43:07 -04:00
Richard Feldman
0a9989e75f wip 2020-06-06 23:41:12 -04:00
Richard Feldman
887ec9860a wip 2020-05-26 21:19:46 -04:00
Richard Feldman
c47dc57fc2 Appease clippy 2020-05-26 00:41:57 -04:00
Richard Feldman
4295dec955 Fix load_builtin_aliases ordering 2020-05-26 00:04:59 -04:00
Richard Feldman
c386192e8b Reorganize when solving and constraint gen happen 2020-05-26 00:04:42 -04:00
Richard Feldman
ce9e7a91f6 Clean up some Cargo.toml files 2020-05-03 21:37:59 -04:00
Richard Feldman
1c1fee7e31 Trim trailing space off pretty_assertions dep 2020-04-16 19:24:24 -04:00
Folkert
63bc923b37 remove panic 2020-04-13 22:54:24 +02:00
Folkert
7632a4b484 highlight code snippets better 2020-04-12 20:59:16 +02:00
Folkert
d15bd07bf4 de-alias when diffing with a non-alias
When one of the types in a comparison is an alias, elm does not de-alias it.
That is really annoying if e.g. the alias is of a record and you used an invalid field: the field suggestion error does not kick in
2020-04-11 23:57:00 +02:00
Folkert
2811f978a4 make a Index data type 2020-04-11 20:40:25 +02:00
Folkert
ab19529077 record update hints 2020-04-11 14:55:12 +02:00
Folkert
7e4e3c93d5 cleanup 2020-04-07 21:12:56 +02:00
Folkert
7f999a06f3 add When pattern errors 2020-04-07 18:06:00 +02:00
Folkert
02e42b0abc add from annotation cases 2020-04-06 22:59:21 +02:00
Folkert
2d6e47b8a6 test for record diff 2020-04-06 21:40:54 +02:00
Folkert
5b0d9e693b record update value 2020-04-05 00:15:38 +02:00
Folkert
f8b3d5dce7 elem_in_list 2020-04-05 00:15:38 +02:00
Folkert
200adae507 when_branch_mismatch 2020-04-05 00:15:38 +02:00
Folkert
a2a79925b3 complete add_category 2020-04-03 16:10:41 +02:00
Richard Feldman
98f4f46248 Special-case 2-branch if/else errors 2020-04-03 01:51:42 -04:00
Folkert
1981a7e467 refactor and clean up 2020-04-03 01:20:35 +02:00
Folkert
2e822e739f report circular type error 2020-04-02 23:13:35 +02:00
Folkert
8642cfeae0 report first type error 2020-04-01 23:37:05 +02:00
Folkert
106a3646bf add category to Eq constraint 2020-04-01 20:09:10 +02:00
Folkert
e05bad3c72 remove panic in constrain/src/pattern 2020-03-30 15:09:15 +02:00
Folkert
eca096bf2c disable inlining in unique when branch constraint gen 2020-03-22 01:42:28 +01:00
Folkert
bd7ad318cf fix bug in guard constraint gen 2020-03-21 15:12:01 +01:00
Folkert
920928399a type inference for pattern guards 2020-03-21 00:39:52 +01:00
Folkert
b43be95b19 add record_var to Access and Accessor 2020-03-14 01:13:44 +01:00
Folkert
e62ddc9ef5 make record variable names clearer 2020-03-14 01:01:14 +01:00
Folkert
38c93c001f constrain whole_var 2020-03-13 23:34:29 +01:00
Folkert
e3e84ecb0c fix If bug in uniq constraint gen 2020-03-13 13:06:56 +01:00
Folkert
aeeaf99c17 fix bug in constraint gen for If
the condition expression wasn't actually constrained
2020-03-13 13:06:56 +01:00
Folkert
fb8e8570bc Merge remote-tracking branch 'origin/trunk' into num 2020-03-11 14:30:50 +01:00
Folkert
17348231fd fix uniqueness Num inference
The variable in Num is the `a` in `Num a`. For Int/Float literals, it's a helper variable to generate better error messages
2020-03-11 14:18:26 +01:00
Folkert
9ba09c7d82 use Reason::NumLiteral in uniqueness inference
we can 'just' do that here because there is a var_store available. That isn't true for normal inference, where we would have to put the variable in during solving
2020-03-11 14:07:49 +01:00
Richard Feldman
d4dc0eb683 Implement uniqueness for (Num *) 2020-03-10 22:53:53 -04:00