Commit Graph

132 Commits

Author SHA1 Message Date
Ayaz Hafiz
2aa69cb3f1
Update test 2022-07-31 19:43:18 -05:00
Ayaz Hafiz
985c43b15b
Don't panic when weird things get into a record
Closes #3648
2022-07-31 19:43:18 -05:00
Ayaz Hafiz
4657a957f7
When storing variables, merge them directly with the target rather than unifying
When we unify two variables that end up merged, the rank of the
resulting content is the lower of the two variables being merged. But
during storage, we really do mean, take the target descriptor of the
type we're merging against, and don't try to lower to a
possibly-generalized rank! This fixes a couple bugs I didn't even
realize were present!
2022-07-29 14:53:14 -04:00
Ayaz Hafiz
0989b2cb82
Move solve problems to their own crate 2022-07-28 08:57:32 -04:00
Folkert de Vries
01eb161ffe
Merge pull request #3637 from rtfeldman/can-abilities4
Syntactic abilities: Part 4 - simplify obligation solving procedure
2022-07-28 11:32:11 +02:00
Folkert de Vries
21fe0ca559
Merge pull request #3639 from rtfeldman/expect-lists
Tests for expect output
2022-07-28 08:53:58 +02:00
Richard Feldman
c2865e39ff
Fix stack overflow in reporting 2022-07-27 15:22:36 -04:00
Folkert
e19b272a9e
test expect reporting 2022-07-27 13:51:12 +02:00
Richard Feldman
fa5bd442f8
Merge pull request #3635 from rtfeldman/joshuawarner32/multiline
Strip indents and the first/last newline from multiline strings
2022-07-26 22:09:58 -04:00
Ayaz Hafiz
bb14b649a2
Don't re-report obligations that we know were seen elsewhere 2022-07-26 20:46:35 -04:00
Ayaz Hafiz
6b9c1cb690
Check whether opaque implements ability using store 2022-07-26 20:46:35 -04:00
Ayaz Hafiz
8659ddc684
Remove dominated derive errors 2022-07-26 20:46:35 -04:00
Ayaz Hafiz
3703940da9
Report specializations that target the unexpected type 2022-07-26 20:46:34 -04:00
Ayaz Hafiz
b0102a8ae7
Add test for when ability specialization is unused 2022-07-26 20:46:33 -04:00
Folkert
1017bbc5ec
use std::io::Write for making expect messages 2022-07-26 20:12:09 +02:00
Folkert
7014fbb5ec
move expect panic formatting to reporting crate 2022-07-26 18:33:43 +02:00
Ayaz
6b6f240acb
Merge pull request #3589 from rtfeldman/can-abilities3
Canonicalize syntactic abilities: Part 3 - solving
2022-07-25 21:48:14 -05:00
Joshua Warner
a579edc6f0 Fix error reporting location for unterminated strings and add test for insufficiently indented multiline strings 2022-07-25 19:07:58 -07:00
Folkert
da4c4c5628
move expect formatting into reporting 2022-07-25 23:49:17 +02:00
Richard Feldman
11ba64c249
Merge pull request #3608 from rtfeldman/more-list-builtins
More `List` builtins
2022-07-25 15:23:45 -04:00
Folkert de Vries
d212dffa1a
Merge pull request #3616 from rtfeldman/i3614
Compile branches in the presence of degenerate patterns
2022-07-25 19:45:36 +02:00
Folkert
ed71ab3c8f
update reporting test with new suggestion 2022-07-25 19:15:39 +02:00
Richard Feldman
d94f1caa01
Improve a type mismatch message 2022-07-25 19:15:33 +02:00
Ayaz Hafiz
10db3f8574
Detect ability specializations that overload different opaque types 2022-07-25 11:35:20 -04:00
Ayaz Hafiz
51bce825fb
Properly record all erroring ability implementations 2022-07-25 11:30:03 -04:00
Ayaz Hafiz
6035e45f25
Store derivable ability members statically 2022-07-25 09:09:00 -04:00
Richard Feldman
d2dd4f3e0b
Update reporting snapshot 2022-07-24 19:16:48 -04:00
Richard Feldman
d4f192ffd6
Change "an when" to "a when" in error message 2022-07-24 19:15:51 -04:00
Ayaz Hafiz
cb42d9b076
Remove subsumed test 2022-07-24 16:11:05 -04:00
Ayaz Hafiz
e15278024a
Add no-introduced-variables test for toplevel defs 2022-07-24 16:11:05 -04:00
Ayaz Hafiz
0de32ac5a9
Warn on definitions that introduce no new variables 2022-07-24 16:11:04 -04:00
Ayaz Hafiz
beccc92c87
Support underscores in assignment patterns 2022-07-24 16:11:03 -04:00
Ayaz Hafiz
569e90d682
Fix test change due to underscore parsing in patterns 2022-07-24 16:10:36 -04:00
Ayaz Hafiz
639fcb076b
Add test for using only underscore as identifier name 2022-07-24 16:10:35 -04:00
Ayaz Hafiz
59ab1da83f
Compile branches in the presence of degenerate patterns
Closes #3614
2022-07-22 18:16:02 -04:00
Ayaz Hafiz
1d4e6acd41
Add test for when catchall branches are on different branches 2022-07-22 12:57:27 -04:00
Ayaz Hafiz
13b0ce7ca0
Make sure to apply "is-open" constraints at the very end of pattern constraining
Closes #3298
2022-07-22 12:57:27 -04:00
Richard Feldman
b7d78d9237
Merge pull request #3598 from rtfeldman/i3558
Compile variables bound in multiple patterns of a branch, and detect unbound patterns
2022-07-21 16:45:52 -04:00
Ayaz Hafiz
78dc82867a
Report errors for identifiers not bound in all patterns of a branch 2022-07-21 12:15:05 -04:00
Richard Feldman
a0237d6aa3
Revise unexpected pattern report 2022-07-20 10:49:06 -04:00
Richard Feldman
55b86f3fe2
Update a test to use new wording 2022-07-20 10:49:06 -04:00
Richard Feldman
6aaa940ddf
Update reporting tests and snapshots 2022-07-20 10:49:06 -04:00
Richard Feldman
024b0c85f8
Report 'a fraction' instead of 'a frac' 2022-07-20 10:49:05 -04:00
Richard Feldman
e389b23e4b
Update wording on arg mismatch 2022-07-20 10:49:05 -04:00
Ayaz Hafiz
7586a8a083
Check complete ability implementations during canonicalization 2022-07-19 14:30:20 -04:00
Ayaz Hafiz
37ab06b0a3
Reject implementations that don't point to abilities 2022-07-19 14:30:19 -04:00
Ayaz Hafiz
e4af8af1a3
Report duplicate implementations for ability members 2022-07-19 14:30:19 -04:00
Ayaz Hafiz
d2da395619
Syntactic ability links in solve 2022-07-18 18:33:28 -04:00
Ayaz Hafiz
17f53a23a5
Update tests 2022-07-18 17:55:02 -04:00
Ayaz Hafiz
c2154ac311
Support shorthand ability implementation syntax 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
870294b564
Update reporting tests 2022-07-18 17:55:01 -04:00
Ayaz Hafiz
e672ce9ebd
First pass at canonicalizing and reporting syntactic abilities 2022-07-18 17:55:01 -04:00
Richard Feldman
ef1daf0f05
Add failing reporting test for ability_member_not_defined 2022-07-18 17:55:00 -04:00
Folkert
b9ebd4fa27 Merge remote-tracking branch 'origin/trunk' into pretty-expect-output 2022-07-15 09:12:04 +02:00
Folkert de Vries
1b1b63aad0
Merge branch 'trunk' into assoc-list-dict 2022-07-14 16:47:50 +02:00
Ayaz
a9243720da
Merge pull request #3496 from rtfeldman/derive-w-mono
Monomorphize and compile derived implementations
2022-07-14 07:45:21 -05:00
Folkert
06938429a1
Merge branch 'assoc-list-dict' into pretty-expect-output 2022-07-14 00:39:01 +02:00
Folkert
5763248b44
Merge remote-tracking branch 'origin/trunk' into assoc-list-dict 2022-07-13 20:44:28 +02:00
Richard Feldman
bf63c45b46
Compute src_dir from original filename
This fixed a bug where bindgen was providing cwd() for src_dir,
but actually the src_dir should have been based on the filename.
This prevents that problem from happening in the future!
2022-07-13 12:49:06 -04:00
Folkert
e921fe6515
add code for rendering the result 2022-07-13 14:57:08 +02:00
Ayaz Hafiz
f7dea48418
Update reporting test 2022-07-13 08:47:41 -04:00
Ayaz Hafiz
3708ed7c90
Remove stale test for inferred encodable type variables 2022-07-13 08:47:40 -04:00
Ayaz Hafiz
df9bcb1a0c
Use Derived_synth for synthesizing implementations, and Derived_gen for codegen 2022-07-13 08:47:39 -04:00
Ayaz Hafiz
9a01117536
Fix compile errors 2022-07-13 08:47:37 -04:00
Ayaz Hafiz
d8bee6cd18
Perfom derives from global derives module, not just symbol table 2022-07-13 08:47:36 -04:00
Folkert
cbd6052dbb
fix dict/set not being in scope 2022-07-13 14:04:38 +02:00
Ayaz Hafiz
f1a6ea6a40
Typecheck and compile opaque wrapping functions
This enables you to write something like

```
A := U8
List.map [1, 2, 3] @A
```

which will be compiled as if it was `List.map [1, 2, 3] \x -> @A x`.

Closes #3499
2022-07-12 18:38:03 -04:00
Folkert de Vries
f1aae6f480
Merge pull request #3476 from rtfeldman/i3469
Remove more builtins code
2022-07-10 23:06:50 +02:00
Ayaz Hafiz
1acc6434ae
Remove add_aliases 2022-07-10 10:46:58 -04:00
Ayaz Hafiz
b04f704b99
Remove constrain_builtin_imports 2022-07-10 10:46:18 -04:00
Ayaz Hafiz
98287e7670
Remove imported_builtins from load 2022-07-10 10:41:06 -04:00
Richard Feldman
f45e3dbb46
Fix tests 2022-07-08 18:16:08 -04:00
Ayaz Hafiz
e118573896
Add test to check structural recursion vars cannot leak into opaques 2022-07-08 15:31:44 -04:00
ayazhafiz
161d6b45f2
Stray dbg 2022-07-05 22:30:34 -04:00
Ayaz Hafiz
c154a337a9
Get deep range numbers working 2022-07-05 22:16:52 -04:00
Ayaz Hafiz
5a18490050
Support ordering floats in numeric literal bounds 2022-07-05 22:16:51 -04:00
Ayaz Hafiz
1905e1815d
Detect when big number literals cannot fit into the same type 2022-07-05 22:16:49 -04:00
Ayaz Hafiz
fc1617bf17
Phantom types
Closes #3314
2022-07-05 19:07:41 -04:00
ayazhafiz
b490a1fdf8
Replace other test_reporting tests with snapshots 2022-07-03 14:19:57 -04:00
ayazhafiz
375b3e064a
Use insta snapshot tests in reporting tests 2022-07-03 12:58:27 -04:00
Anton-4
b74fc3554b
Merge branch 'trunk' of github.com:rtfeldman/roc into crates-folder 2022-07-02 12:35:19 +02:00
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00