Folkert
25329ad672
get rid of Container
2020-07-18 00:57:27 +02:00
Folkert
ce8bcbb5ed
introduce Record and Apply Update and Access
2020-07-18 00:52:22 +02:00
Folkert
6e7ec8cd2c
fix other test failures
2020-07-18 00:18:55 +02:00
Richard Feldman
3d9dba251e
Fix new Rust 1.45 clippy warning
2020-07-16 19:48:58 -04:00
Richard Feldman
1cd49689c2
Merge remote-tracking branch 'origin/trunk' into low-level-ops
2020-07-07 21:09:50 -04:00
Folkert
0c7a4179aa
report malformed int and float patterns
2020-07-04 20:29:37 +02:00
Folkert
474d164a8c
fix some comments
2020-07-03 16:21:09 +02:00
Folkert
744b8ce32b
fix todos regarding InvalidCycle
2020-07-03 15:42:24 +02:00
Folkert
36e6950daa
ensure VarId always encodes root var
...
otherwise variables with the same root, but different values would be different once imported in another module
2020-06-30 15:03:30 +02:00
Folkert
c589be43c6
fix triple (or more) mutualy recursive type aliases
2020-06-30 14:25:47 +02:00
Folkert
5483ec819f
fix infinite unfolding of recursive tag union
2020-06-30 13:54:16 +02:00
Richard Feldman
8c96d12661
Merge trunk
2020-06-29 22:10:46 -04:00
Folkert
41621bc509
fix test outputs
...
in some cases for aliases the outputs are not entirely correct yet. That's future work
2020-06-27 21:01:51 +02:00
Folkert
79f01e0604
loads of things
2020-06-27 16:20:30 +02:00
Folkert
e5997c4047
fix mutual recursive types
...
I'll write a bit more about this in the PR message
2020-06-26 01:03:55 +02:00
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
Richard Feldman
3ecbe0325c
Plain number literals (e.g. 5
) are now Num *
2020-03-10 22:27:13 -04:00
Folkert
7fea957979
hardcode Bool
2020-03-10 14:50:35 +01:00
Richard Feldman
a2f5f6f9fb
Move solve and uniq tests into other crates
2020-03-06 18:24:37 -05:00
Folkert
4848eb5901
refactor introduced variables
...
This has lead to so many problems, so I made a special-purpose type for it
2020-03-06 23:55:31 +01:00
Folkert
fefac9580e
expose rigids introduced by builtins
...
they aren't used yet, because their names can 'leak'. Not sure what the best way forward is here
2020-03-06 13:48:52 +01:00
Richard Feldman
45bda2e0c7
Move unique_builtins into builtins crate
2020-03-06 01:47:04 -05:00
Richard Feldman
908e485fca
Move constrain and its deps into their own crates
2020-03-06 01:43:39 -05:00