Ayaz Hafiz
b0c602eb8d
Clippy
2022-06-02 09:44:38 -05:00
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
a8453b0fca
Fix macro
2022-06-01 13:27:24 -05:00
Ayaz Hafiz
c66f989467
Recursive closure layout working again in effect test
2022-06-01 13:18:54 -05:00
Ayaz Hafiz
2e70c9aba4
Getting closer. Checking in for a break.
2022-06-01 13:18:53 -05:00
Ayaz Hafiz
790eb8e20c
Lambda sets don't need extension vars
2022-06-01 13:18:03 -05:00
Ayaz Hafiz
c2a2ce690c
Lift lambda sets as their own type
...
This prepares for unspecialized lambda set in the type system in
general.
2022-06-01 13:17:22 -05:00
Folkert
9540aa5b70
make deep_copy_var non-recursive
2022-06-01 17:59:35 +02:00
Richard Feldman
4eec34becf
Update to use new square brace formatting
2022-05-22 23:15:54 -04:00
Folkert
98ce9f4d09
remove the snapshots
2022-05-21 20:42:19 +02:00
Folkert de Vries
feaf53371f
Merge pull request #3113 from rtfeldman/new-utable-copy
...
New utable variable copy
2022-05-21 18:17:56 +02:00
Richard Feldman
3cdaa52a30
Merge pull request #3110 from rtfeldman/handcrafted-unification-table
...
Handcrafted unification table
2022-05-21 11:39:58 -04:00
Folkert
722ae9da6b
pass along the specific pool we're adding to
2022-05-21 14:48:45 +02:00
Folkert
1814a69c30
remove closure that is used once
2022-05-21 14:42:48 +02:00
Folkert
8c44661bc2
use set_content_unchecked; replace modify with a single set
2022-05-21 14:06:43 +02:00
Folkert
f1e1c45f2f
some more unchecked operations
2022-05-21 13:52:44 +02:00
Folkert
a1894195d3
refactoring trivial copy detection
2022-05-21 13:48:28 +02:00
Ayaz Hafiz
ababfa4129
Use two caches instead of a unified one for obligation checking
2022-05-20 17:39:09 -04:00
Folkert
a705d6a6e8
unchecked in making the rank table
2022-05-20 23:28:56 +02:00
Folkert
e20ac3f38f
use unchecked operations in generalization
2022-05-20 23:18:27 +02:00
Folkert
d291a87945
more efficient use of Subs api
2022-05-20 22:55:00 +02:00
Ayaz Hafiz
a4c122d5db
Validate derives clauses after solving
2022-05-20 15:56:55 -04:00
Folkert
4550f3fa88
update deep_copy_var_help
2022-05-20 21:44:46 +02:00
Folkert
be104d25eb
update instantiate rigid
2022-05-20 21:36:05 +02:00
Folkert
f2deb37a30
update instantiate rigid
2022-05-20 21:18:52 +02:00
Folkert
dc155ea95a
update generalize
2022-05-20 21:05:17 +02:00
Folkert
4489a308e4
use modify over getting a mutable reference
2022-05-20 21:02:53 +02:00
Ayaz
eb706d2863
Merge pull request #3100 from rtfeldman/solve-copy-sequence
...
use macro in copy_var to clean up logic
2022-05-20 08:50:42 -04:00
Folkert
9d21343227
use macro to clean logic up a bit
2022-05-20 10:29:41 +02: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
4dede6e570
Simplify instantiate aliases
2022-05-19 18:21:45 -04:00
Ayaz Hafiz
312cdd0b70
Correct imports of Encode and abilities across modules
2022-05-19 18:21:40 -04:00
Richard Feldman
9bc1e320dc
Fix --release warnings
2022-05-15 21:50:49 -04:00
Folkert
7face320eb
move back to one loc_symbols vector
2022-05-14 14:44:37 +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
Ayaz Hafiz
da00c47102
Opportunistically resolve specializations during solving
2022-05-11 08:53:15 -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
Ayaz Hafiz
3de35f7aa2
Loosen recursion var rank restriction in presence of errors
2022-05-10 11:15:21 -04:00
Richard Feldman
2db527888b
Drop unnecessary parens
2022-05-09 22:31:29 -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
2cacda00eb
Add some internal error assertions
2022-05-08 15:08:19 -04:00
Ayaz Hafiz
b3845c21bd
Print able type variables correctly
2022-05-08 15:08:19 -04:00
Ayaz Hafiz
154b17d9f0
Correct instantiation of delayed opaques
...
I didn't realize that delayed instantiation of aliases instantiates
their real var, not the whole alias type. So prior to this, we were
wrapping all opaques in a structural `Alias(..)`. Which is okay from a
typechecking perspective because Aliases are transparent, but is
wasteful.
2022-05-08 15:08:19 -04:00
Ayaz Hafiz
c1b1f60630
Coupon cutting
2022-05-08 15:08:16 -04:00
Ayaz Hafiz
a242a90416
Stale comment
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
Mfon Eti-mfon
85c622b169
Update symbols definition
2022-05-08 15:54:34 +01:00
Ayaz Hafiz
af3a677f12
Correct instantiation of delayed opaques
...
I didn't realize that delayed instantiation of aliases instantiates
their real var, not the whole alias type. So prior to this, we were
wrapping all opaques in a structural `Alias(..)`. Which is okay from a
typechecking perspective because Aliases are transparent, but is
wasteful.
2022-05-07 16:50:14 -04:00
Folkert
fa3eff6515
re-use a vector that already has a good capacity
2022-05-07 13:21:23 +02:00