Commit graph

343 commits

Author SHA1 Message Date
Ayaz Hafiz
bde107da49
Remove TagName in favor of explicit TagName or Closure
Note that we still need a `TagOrClosure` enum for phases past mono, but
at least we get rid of the branches in the front end.
2022-06-02 09:44:34 -05:00
Ayaz Hafiz
40b43ea98d
Fix tests that use same temp path 2022-06-01 13:14:01 -05:00
Richard Feldman
4eec34becf
Update to use new square brace formatting 2022-05-22 23:15:54 -04:00
Richard Feldman
0fae5b0bac
Update reporting to use new formatting 2022-05-22 22:13:03 -04:00
Richard Feldman
95e82f9414
Update reporting to use new formatting 2022-05-22 22:07:09 -04:00
Richard Feldman
66bcb53eb1
Merge pull request #3108 from rtfeldman/check-derived2
Validate derives clauses after solving
2022-05-21 11:39:18 -04:00
Richard Feldman
ba2465989a
Merge pull request #3098 from rtfeldman/check-derived
Canonicalize "has"-deriving clauses
2022-05-21 11:38:59 -04:00
Richard Feldman
49aea9d639
Use [u8; 16] to avoid number alignment bumps 2022-05-21 00:53:47 -04:00
ayazhafiz
7383c57d7e
Clippy 2022-05-20 20:34:17 -04:00
Ayaz Hafiz
4a77ce9eca
<clip> 2022-05-20 17:47:21 -04:00
Ayaz Hafiz
bc2d0a2c7a
Add some more tests 2022-05-20 17:39:26 -04:00
Ayaz Hafiz
ababfa4129
Use two caches instead of a unified one for obligation checking 2022-05-20 17:39:09 -04:00
Ayaz Hafiz
a4c122d5db
Validate derives clauses after solving 2022-05-20 15:56:55 -04:00
ayazhafiz
3bd5c83bba
Fix error message typo 2022-05-20 15:55:46 -04:00
ayazhafiz
e52544fc4d
Fix a couple typos 2022-05-20 15:55:46 -04:00
Ayaz Hafiz
9712cfe342
Canonicalize deriving 2022-05-20 15:55:45 -04:00
Richard Feldman
3212ca3949
Revise error message for Not Found 2022-05-20 11:30:57 -04:00
Ayaz Hafiz
768121e431
Don't allocate for missing or existing members by default
- Missing members are zero in the happy case
- Existing members will always be populated in the happy case, but I
  don't think they improve the error message, so just get rid of it.
2022-05-19 18:25:42 -04:00
Ayaz Hafiz
c5d970bd81
Improve reporting for unfulfilled abilities 2022-05-19 18:23:02 -04:00
Ayaz Hafiz
cf56b5015a
Fix existing reporting tests 2022-05-19 18:23:02 -04:00
Ayaz Hafiz
2c87214b44
Check derivability of abilities for structural types 2022-05-19 18:23:02 -04:00
Ayaz Hafiz
0e63efdf09
Scaffold tests 2022-05-19 18:23:02 -04:00
Ayaz Hafiz
577f1102d3
Update reporting tests
Not sure why these changed, but it seems okay.
2022-05-19 18:21:43 -04:00
Ayaz Hafiz
312cdd0b70
Correct imports of Encode and abilities across modules 2022-05-19 18:21:40 -04:00
Richard Feldman
9c72e5e8ed
Remove unnecessary -> () function return types 2022-05-18 08:29:40 -04:00
Richard Feldman
236b36c07a
Tweak some type-checking messages 2022-05-17 20:44:16 -04:00
Anton-4
0f59f3097a
cargo fix --edition 2022-05-16 17:04:17 +02:00
Folkert
c161140aec
Merge remote-tracking branch 'origin/trunk' into more-tyck 2022-05-14 14:48:54 +02:00
Ayaz Hafiz
1609a1a48b
Add some comments and tests showing why recursive defs are constrained this way 2022-05-11 19:16:10 -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
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
da00c47102
Opportunistically resolve specializations during solving 2022-05-11 08:53:15 -04:00
Richard Feldman
fd40fed937
Fix a bunch of errors from clippy --tests 2022-05-10 15:21:48 -04:00
Ayaz Hafiz
62ebb80f09
Handle recursion through Applys with errors
Closes #219
2022-05-10 12:58:14 -04:00
Ayaz Hafiz
4339d50480
Improve cycle error message
Closes #2513
2022-05-10 12:11:32 -04:00
Ayaz Hafiz
3ddb14184d
Move dead code removal 2022-05-10 11:29:10 -04:00
Ayaz Hafiz
3de35f7aa2
Loosen recursion var rank restriction in presence of errors 2022-05-10 11:15:21 -04:00
Ayaz Hafiz
9f6847e882
Fix test 2022-05-09 11:09:54 -04:00
Ayaz Hafiz
f89b1fdac3
Fix space 2022-05-09 10:01:03 -04:00
Ayaz Hafiz
2efd0e23a7
We hate the allocs 2022-05-09 09:49:43 -04:00
Ayaz Hafiz
b92e3a07ac
Remove irrelevant errors 2022-05-09 09:48:30 -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
Ayaz Hafiz
7b195d5fdf Abilities in aliases and external member defs are legal now 2022-05-08 15:08:16 -04:00
Ayaz Hafiz
c67bc5a8d6 Remove when-related changes 2022-05-08 15:07:27 -04:00
Ayaz Hafiz
5fe902b8d3 Improve non-exhaustive typechecking errors
We will replace this with proper exhaustiveness checking when we have
that in the typechecking phase, but for now this should do.
2022-05-08 15:07:27 -04:00
Ayaz Hafiz
c01baa9168 Fix failing reporting tests 2022-05-08 15:07:27 -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
ayazhafiz
0626433a14 Sweep unused deps
`cargo +nightly udeps` told me what's good
2022-05-06 22:54:42 -04:00