Commit graph

1250 commits

Author SHA1 Message Date
Folkert
69e7d0a378
use opt var in cycle marks 2022-05-15 13:14:18 +02:00
Folkert
7face320eb
move back to one loc_symbols vector 2022-05-14 14:44:37 +02:00
Ayaz Hafiz
75f7f6e681
cargo fmt 2022-05-11 14:57:03 -04:00
Ayaz Hafiz
c708c1ba07
Fix can and load tests 2022-05-11 14:57:03 -04: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
Ayaz Hafiz
17d8545510
Remove symbols_from_pattern 2022-05-11 14:53:40 -04:00
Ayaz Hafiz
9777886376
Fill out pattern traversals, add symbol discovery 2022-05-11 14:53:39 -04:00
Ayaz
d485869954
Merge pull request #3039 from rtfeldman/specializations-at-the-front
Opportunistically resolve specializations during solving
2022-05-11 13:42:19 -04:00
Ayaz Hafiz
eca069bb4a
Test static specializations 2022-05-11 08:53:41 -04:00
Ayaz Hafiz
da00c47102
Opportunistically resolve specializations during solving 2022-05-11 08:53:15 -04:00
Ayaz Hafiz
619d9aa8b3
Decrease specialization ID size 2022-05-11 08:52:49 -04:00
Ayaz Hafiz
bdccda6cfb
Add some debug-assertions regarding what we know about specializations 2022-05-11 08:52:48 -04:00
Richard Feldman
fd40fed937
Fix a bunch of errors from clippy --tests 2022-05-10 15:21:48 -04:00
Ayaz Hafiz
b0734c3d80
Disallow abilities on toplevel of scope 2022-05-09 09:45:02 -04:00
Richard Feldman
df7df4ccf8
Merge branch 'trunk' into mfonism/rename-num-float-type-to-frac 2022-05-08 20:54:33 -04:00
ayazhafiz
f2d3865315 Fix can AST walk 2022-05-08 15:17:59 -04:00
Ayaz Hafiz
4bfbe479c9 Useless comment 2022-05-08 15:08:20 -04:00
Ayaz Hafiz
798c28fccd Dryasdust was a popular word in 1860 2022-05-08 15:08:20 -04:00
Ayaz Hafiz
da604e978e Use SpecializationId to mark specializations 2022-05-08 15:08:19 -04:00
Ayaz
4858979d6b Remove stale comment 2022-05-08 15:08:19 -04:00
Ayaz Hafiz
08beedb648 Improve codelink comment 2022-05-08 15:08:19 -04:00
Ayaz Hafiz
5cc6727e9f Simplify introduced variables in ability member 2022-05-08 15:08:19 -04:00
Ayaz Hafiz
30ef59a591 Fix test import 2022-05-08 15:08:17 -04:00
Ayaz Hafiz
025d501cfd Determine ability specializations before walking a body 2022-05-08 15:08:17 -04:00
Ayaz Hafiz
edee222763 Add AbilityMember can variant for resolving ability specializations 2022-05-08 15:08:16 -04:00
Ayaz Hafiz
ebbcd57022 Make visitors public 2022-05-08 15:08:16 -04:00
Ayaz Hafiz
d2eb5e17ec Fill out can traversals 2022-05-08 15:08:16 -04:00
Ayaz Hafiz
c1b1f60630 Coupon cutting 2022-05-08 15:08:16 -04:00
Ayaz Hafiz
2e57bf0b6a Permit able variables in aliases, and thread them through 2022-05-08 15:08:14 -04:00
Ayaz Hafiz
b5efd830e5 Solve and gen ability members that bind other able variables 2022-05-08 15:07:27 -04:00
Ayaz Hafiz
c01baa9168 Fix failing reporting tests 2022-05-08 15:07:27 -04:00
Folkert
7be41d8c09
remove unused variables from let/letrec 2022-05-08 20:06:00 +02:00
Mfon Eti-mfon
9068c2414e
Rename float functions and vars 2022-05-08 18:42:12 +01:00
Folkert
2e9477e011
remove another result wrapper 2022-05-08 17:16:13 +02:00
Folkert
d5b010cb13
remove unused Result wrapper 2022-05-08 17:16:00 +02:00
Folkert
c5b7ff98fd
move reference matrix 2022-05-08 12:18:10 +02:00
ayazhafiz
0626433a14 Sweep unused deps
`cargo +nightly udeps` told me what's good
2022-05-06 22:54:42 -04:00
Folkert
8a209334cc
use bitvec in the input for sccs 2022-05-07 00:39:15 +02:00
Folkert
13fc0f9a1e
make params.p use a bitvec 2022-05-06 22:55:18 +02:00
Folkert
b46de2f0a8
Revert "make params.p use a bitvec"
This reverts commit a2b04d35f7.
2022-05-06 22:55:06 +02:00
Folkert
2b1491189a
Revert "use bitvec for params.s"
This reverts commit 65ca5d33b3.
2022-05-06 22:48:59 +02:00
Folkert
65ca5d33b3
use bitvec for params.s 2022-05-06 22:23:32 +02:00
Folkert
a2b04d35f7
make params.p use a bitvec 2022-05-06 22:06:16 +02:00
Folkert
3e38dc80f5
use bitvec for group (internally) 2022-05-06 21:56:48 +02:00
Ayaz Hafiz
77a1f644a4
Thread error message information for requires 2022-05-06 12:06:27 -04:00
Ayaz Hafiz
e8fbda44fc
Revert "Revert "Thread through symbols_from_requires""
This reverts commit 8ac1dfac1a.
2022-05-06 12:06:27 -04:00
Folkert
5755475b3a
add ListIsUnique lowlevel operation 2022-05-06 13:56:35 +02:00
Richard Feldman
8ac1dfac1a
Revert "Thread through symbols_from_requires"
This reverts commit 1421aebcd3.
2022-05-05 16:19:34 -04:00
Richard Feldman
1421aebcd3
Thread through symbols_from_requires 2022-05-05 16:18:47 -04:00
Richard Feldman
e6a72578c1
Add Annotation::add_to 2022-05-05 16:17:49 -04:00