Commit graph

184 commits

Author SHA1 Message Date
Richard Feldman
24a38c4a26
Merge remote-tracking branch 'origin/main' into remove-nat 2024-02-11 12:26:36 -05:00
Anton-4
3c7a834da1
update to new interpolation syntax 2024-02-02 13:39:10 +01:00
Richard Feldman
bf660ad094
Remove Nat from tests 2024-01-26 16:19:52 -05:00
Richard Feldman
7e51dfd526
Update test fixtures to not use Nat indices 2024-01-26 16:06:07 -05:00
Anton-4
1126f85b5a
fix clippy unnecessary hashes 2024-01-01 16:38:36 +01:00
Bryce Miller
59eb28ef58
Add builtin List.walkWithIndexUntil 2023-12-11 23:04:40 -05:00
Isaac Van Doren
139d3c6f89
make dropFirst and dropLast drop n elements 2023-10-29 13:23:33 -05:00
Richard Feldman
dc7e8b43bd
Rename Float to Frac in more places 2023-09-11 08:50:13 -04:00
Richard Feldman
2da41be29f
Merge remote-tracking branch 'origin/main' into abilities-syntax 2023-08-10 20:36:01 -04:00
Ayaz Hafiz
6014370b91
Initial support for erasure in tests 2023-07-12 13:53:51 -05:00
Folkert
ef39bad7c6
auto clippy fixes 2023-07-10 18:27:08 +02:00
Hannes
97fa6758d0 Rename trimLeft to trimStart and trimRight to trimEnd 2023-06-19 13:17:59 +08:00
Bryce Miller
cb08225bf0
| -> where 2023-06-05 20:19:00 -04:00
Bryce Miller
91e37293a2
abilities syntax has -> implements 2023-05-24 21:29:38 -04:00
Bryce Miller
31c06ca979
has -> implements 2023-05-21 19:54:58 -04:00
Ayaz Hafiz
7797412aef
Drop unused functions 2023-04-20 17:57:18 -05:00
Ayaz Hafiz
721d3836cd
Migrate even more tests 2023-04-20 16:18:23 -05:00
Ayaz Hafiz
7c14b78e5d
Migrate more tests 2023-04-20 16:18:23 -05:00
Ayaz Hafiz
014ec8c092
Support multiple modules in uitest 2023-04-12 11:35:33 -05:00
Ayaz Hafiz
aa7fb75f3e
Drop infer_queries macro 2023-04-02 13:16:04 -05:00
Ayaz Hafiz
c57aaecad4
Migrate pattern tests 2023-04-02 13:15:36 -05:00
Ayaz Hafiz
67364e1a42
Migrate polymorphic lambda set specialization tests 2023-04-02 13:12:51 -05:00
Ayaz Hafiz
e72e17fc82
Migrate list_of_lambdas 2023-04-02 13:03:18 -05:00
Ayaz Hafiz
88b044a765
Migrate ability resolution tests 2023-04-02 13:02:01 -05:00
Ayaz Hafiz
05af17af43
Migrate even more tests 2023-04-02 12:56:01 -05:00
Ayaz Hafiz
2dcafffb46
Migrate couple more tests 2023-04-02 12:53:06 -05:00
Ayaz Hafiz
bc7e6c4340
Unused test 2023-04-02 12:50:19 -05:00
Ayaz Hafiz
6b3a4b419e
Migrate even more tests 2023-03-31 19:05:10 -05:00
Ayaz Hafiz
61adcd34d2
Migrate more tests 2023-03-31 18:35:45 -05:00
Ayaz Hafiz
906f2349b8
Remove migrated test 2023-03-31 18:02:10 -05:00
Ayaz Hafiz
fadd3e7e4a
Remove migrated test 2023-03-31 14:35:21 -05:00
Ayaz Hafiz
a10ce77584
Support printing can decls in uitest 2023-03-31 14:34:06 -05:00
Ayaz Hafiz
d891dd829f
Migrate more tests 2023-03-31 14:06:49 -05:00
Ayaz Hafiz
834f4afe2c
Add more tests 2023-03-31 13:56:46 -05:00
Ayaz Hafiz
3fc54ea578
Migrate a few more tests 2023-03-31 13:45:06 -05:00
Ayaz Hafiz
58cef56a23
Move solve test helpers to their own crate, for now 2023-03-31 11:35:23 -05:00
Ayaz Hafiz
1227d10731
Refactor solve test helpers into a new module 2023-03-31 11:18:24 -05:00
Ayaz Hafiz
f458da0cbc
Implement Hash for Bool 2023-03-28 15:04:45 -05:00
Ayaz Hafiz
d2b9a1a33c
Improve debug printing for can decls 2023-03-27 10:10:56 -05:00
Ayaz Hafiz
84fa22f235
Fix solve test module 2023-03-22 17:08:43 -05:00
Ayaz Hafiz
297a571b34
Eq for Bool 2023-03-22 17:03:58 -05:00
Ayaz Hafiz
5be8ff700d
Derive encode for bool 2023-03-22 17:03:58 -05:00
Ayaz Hafiz
9563b444cd
Fix test 2023-03-22 17:03:57 -05:00
Ayaz Hafiz
f079e8c96b
Bool derive key for Decode 2023-03-22 17:03:57 -05:00
Ayaz Hafiz
e8a29d2df4
Ensure that closures inside recursive closures capture correctly
With a code like

```
thenDo = \x, callback ->
    callback x

f = \{} ->
    code = 10u16

    bf = \{} ->
        thenDo code \_ -> bf {}

    bf {}
```

The lambda `\_ -> bf {}` must capture `bf`. Previously, this would not
happen correctly, because we assumed that mutually recursive functions
(including singleton recursive functions, like `bf` here) cannot capture
themselves.

Of course, that premise does not hold in general. Instead, we should have
mutually recursive functions capture the closure (haha, get it) of
values captured by all functions constituting the mutual recursion.
Then, any nested closures can capture outer recursive closures' values
appropriately.
2023-03-20 17:44:59 -04:00
Ayaz Hafiz
b406e384fc
Print recursion variables correctly in pretty printer 2023-02-13 17:42:21 -06:00
Joshua Warner
5a6be05ead
implement mono / lowering for tuples 2023-02-07 18:54:50 -08:00
Joshua Warner
303e5bceb3
Fix tuple accessor type printing 2023-01-22 13:22:39 -08:00
Joshua Warner
de828416bf
Initial implementation of tuples in type checking
This leaves in place a bunch of TODOs and likely many bugs - notably, I haven't tested codegen/layout at all here.
2023-01-22 12:40:44 -08:00
Ayaz Hafiz
c3f1646274
Weaken ability members behind let-bindings 2023-01-16 10:49:17 -06:00