Commit graph

518 commits

Author SHA1 Message Date
Richard Feldman
226fe40069
cargo fmt 2022-05-16 12:13:18 -04:00
Anton-4
0f59f3097a
cargo fix --edition 2022-05-16 17:04:17 +02:00
Folkert
69e7d0a378
use opt var in cycle marks 2022-05-15 13:14:18 +02:00
Ayaz Hafiz
710a10a29c
Check for invalid cycles after type solving recursive defs
Disallow cycles that pass through a non-function value. Since we
evaluate eagerly, having one such cycle means there is at least one path
in the program that (likely) has unbounded recursion. Of course we can't
be certain (halting problem), but it's very likely, and avoids stuff
like #1926. Also, mono (as it's done today) won't work if things in a
cycle aren't functions.

Closes #1926
2022-05-11 14:57:01 -04:00
Richard Feldman
11e2faa87a
Merge pull request #3050 from rtfeldman/bindgen-tag-payloads
Bindgen single-tag unions
2022-05-10 19:27:25 -04:00
Folkert de Vries
89c6f55288
Merge pull request #3048 from rtfeldman/i/2389
Type solving paper cuts
2022-05-10 20:45:45 +02:00
Ayaz Hafiz
4339d50480
Improve cycle error message
Closes #2513
2022-05-10 12:11:32 -04:00
Ayaz Hafiz
1fb6718c00
Improve error type context field name 2022-05-10 11:32:45 -04:00
Ayaz Hafiz
3ddb14184d
Move dead code removal 2022-05-10 11:29:10 -04:00
Ayaz Hafiz
a9507cf917
Consolidate variable pretty printing 2022-05-10 11:24:41 -04:00
Ayaz Hafiz
3497237c99
Print recursion vars correctly 2022-05-10 10:40:37 -04:00
Richard Feldman
64065a5019
Add UnionTags::iter_from_subs 2022-05-09 22:29:11 -04:00
Richard Feldman
e86ef8d1ca
Make a lifetime more explicit 2022-05-09 18:42:37 -04:00
Richard Feldman
df7df4ccf8
Merge branch 'trunk' into mfonism/rename-num-float-type-to-frac 2022-05-08 20:54:33 -04:00
Ayaz Hafiz
b3845c21bd Print able type variables correctly 2022-05-08 15:08:19 -04:00
Ayaz Hafiz
2e57bf0b6a Permit able variables in aliases, and thread them through 2022-05-08 15:08:14 -04:00
Mfon Eti-mfon
9068c2414e
Rename float functions and vars 2022-05-08 18:42:12 +01:00
Mfon Eti-mfon
85c622b169
Update symbols definition 2022-05-08 15:54:34 +01:00
Ayaz Hafiz
7e234d4550
Instantiate aliases in delayed alias args 2022-05-06 16:04:47 -04:00
ayazhafiz
ef77ff35cf
Improve expectation for platform requires mismatch
```
── TYPE MISMATCH ───── examples/hello-world/rust-platform/./Package-Config.roc ─

Something is off with the type annotation of the main required symbol:

2│      requires {} { main : a -> a }
                             ^^^^^^

This #UserApp.main value is a:

    Str

But the type annotation on main says it should be:

    a -> a

────────────────────────────────────────────────────────────────────────────────
```
2022-05-06 12:06:27 -04:00
Folkert
9854f068d9
change the internal representation of Symbol to two u32's 2022-05-04 22:57:49 +02:00
Ayaz
3197cd97ce
Merge pull request #2977 from rtfeldman/debug_flags
Factor bespoke debug variables into debug_flags crate
2022-04-30 18:16:06 -04:00
Ayaz Hafiz
9964f86a3d
Factor bespoke debug variables into debug_flags crate 2022-04-29 17:45:55 -04:00
Ayaz Hafiz
83c6c3a17d
Remove Lowercase from Alias and Opaque 2022-04-29 11:36:31 -04:00
Ayaz Hafiz
c225515a1b
Get rid of variable name on DelayedAlias 2022-04-29 10:55:29 -04:00
Ayaz Hafiz
9dac9e4bc2 Coalesce 2022-04-28 20:34:03 -04:00
Ayaz Hafiz
bd4f004cea Some marks are always known 2022-04-28 20:33:48 -04:00
Ayaz Hafiz
51c8702820 Smarter marks 2022-04-28 20:33:48 -04:00
Ayaz Hafiz
2f1306afd1 Redundant and exhaustive marks in mono 2022-04-28 20:33:48 -04:00
Ayaz Hafiz
98869b557d Exhaustive and redundant marks 2022-04-28 20:33:48 -04:00
Ayaz
98a3523702
Merge pull request #2961 from rtfeldman/improved-identids
Improved identids
2022-04-27 10:11:06 -04:00
Richard Feldman
6da39aa296
Merge pull request #2917 from rtfeldman/move-exhaustiveness-checking
Moves exhaustiveness checking to type solving phase
2022-04-25 20:55:05 -04:00
Ayaz Hafiz
03deec23c3
Constants 2022-04-25 19:04:10 -04:00
Ayaz Hafiz
85e3373d8b
Move exhaustiveness checking to type checking 2022-04-25 19:04:09 -04:00
Ayaz Hafiz
356616d834
Move exhaustiveness checking to type solving phase with solve tests 2022-04-25 19:04:08 -04:00
Folkert
af6c3231f3
Improved IdentIds 2022-04-25 23:15:57 +02:00
Richard Feldman
85e7969c2d
Replace references to "global tag" with "tag" 2022-04-25 17:04:34 -04:00
Ayaz Hafiz
2020d5f30f
Format 2022-04-25 13:16:44 -04:00
Ayaz
ccaddcebbb
Merge branch 'trunk' into remove-private-tags 2022-04-25 13:14:42 -04:00
Ayaz Hafiz
55706ae5c4
Remove other references to private tags in code 2022-04-25 11:50:00 -04:00
Ayaz Hafiz
cf8409dfaa
Remove private tag variants 2022-04-25 11:38:54 -04:00
Ayaz
53c8dee4ed
Merge pull request #2926 from rtfeldman/matrix-correct-mutual-type-alias
Matrix correct mutual type alias
2022-04-25 11:19:59 -04:00
Ayaz Hafiz
b6383f81ee
Numbers are opaques 2022-04-25 10:59:42 -04:00
Ayaz Hafiz
f5b0b0219e
Remove hack 2022-04-25 10:59:42 -04:00
Ayaz Hafiz
caf65ba2f8
Fix codegen of effect symbols 2022-04-25 10:59:42 -04:00
Ayaz Hafiz
23bbe0863b
Fix effect module 2022-04-25 10:59:41 -04:00
Ayaz
64ed7eea95
Merge branch 'trunk' into fix-when-branch-solving 2022-04-24 12:19:22 -04:00
Folkert
b0ceaf0372
instantiate aliases with a function 2022-04-24 01:04:59 +02:00
Ayaz Hafiz
435781aa5b
Static assertions that certain types implement Copy 2022-04-23 10:56:54 -04:00
Ayaz Hafiz
633bdd5520
Fix failing reporting tests 2022-04-23 10:56:54 -04:00