Ayaz Hafiz
15a040ec87
Basic type inference and solving for abilities
...
Note that is still pretty limited. We only permit opaque types to
implement abilities, abilities cannot have type arguments, and also no
other functions may depend on abilities
2022-04-12 16:18:07 -04:00
Folkert de Vries
7675e0232b
Merge pull request #2819 from rtfeldman/zero-arg-tag
...
Drop unused `arguments` field from `ZeroArgumentTag`
2022-04-10 15:18:03 +02:00
Richard Feldman
b777b88e1c
Drop unused arguments
field from ZeroArgumentTag
2022-04-08 11:53:16 -04:00
Ayaz Hafiz
73bfff699f
Handle symbols that shadow ability member definitions
...
Just add the shadowing symbol for now. We'll handle checking that a
specialization's type matches the member's type definition in a later
pass, during typechecking.
2022-04-07 17:21:17 -04:00
Folkert
0dd2cec09a
update with new clippy lints
2022-03-31 19:34:51 +02:00
hafiz
3f07afe3b5
Merge pull request #2750 from rtfeldman/delay-instantiating-aliases-fix-limitations
...
Delay instantiating aliases fix limitations
2022-03-19 20:41:14 -04:00
Folkert
55d9dc745c
track if an alias is exposed
2022-03-19 17:10:29 +01:00
Folkert
9b63e6a3a9
simplify IntroducedVariables
2022-03-18 23:47:39 +01:00
Folkert
bf063d1d57
use all aliases that are in scope (to support imported aliases)
2022-03-18 20:44:13 +01:00
Folkert
a3b00fbf55
Merge branch 'explicit-closed-tag-record' into delay-instantiating-aliases
2022-03-17 20:34:52 +01:00
Folkert
1dacf29879
make sure aliases are not forgotten
2022-03-16 14:36:24 +01:00
ayazhafiz
3da34fc843
Report unbound type variables in aliases, opaques
...
Closes #2726
2022-03-14 17:42:45 -05:00
Folkert
15ac77567a
make rigid variable introducion more obvious
2022-03-13 18:27:42 +01:00
Folkert
b3f7b3a337
record referenced types
2022-03-13 17:52:31 +01:00
Folkert
563ba6acbb
incorporate referenced types
2022-03-13 16:57:42 +01:00
Folkert
8bc31e82c3
try to keep type and value symbols separate
2022-03-13 16:50:32 +01:00
ayazhafiz
86aa0df661
Add constraint generation for opaque types
2022-02-27 00:10:11 -05:00
Brendan Hansknecht
f7c0e2ef19
Merge remote-tracking branch 'origin/trunk' into single-quote-literal
2022-02-24 10:13:39 -08:00
ayazhafiz
90de82e295
Validation of opaques during canonicalization
2022-02-21 18:25:19 -05:00
ayazhafiz
6b53692aac
Canonicalize opaque types
2022-02-20 13:47:01 -05:00
Folkert
957140df64
remove builtin lookup function being passed around
2022-02-14 20:32:31 +01:00
Folkert
5e16515d22
only generate the functions that the user wants
2022-02-06 12:26:34 +01:00
Folkert
5f1e2c60f8
change how hosted declarations are pushed
2022-02-04 21:56:57 +01:00
Folkert
f1ebc523b6
Merge remote-tracking branch 'origin/trunk' into hook-up-hosted-modules
2022-02-04 00:07:23 +01:00
Folkert
16a2b660c3
bookkeeping
2022-02-02 23:11:52 +01:00
Folkert
5699db99b3
generate hosted functions (foreign functions supplied by the linker)
2022-02-02 22:29:05 +01:00
Folkert
14c0caa275
generate the Effect type and after/map/etc methods in a hosted module
2022-02-02 16:49:56 +01:00
Folkert
1fb746757c
pipe module name into canonicalization of modules
2022-02-02 16:01:31 +01:00
ayazhafiz
320827167f
Parse number literal width suffixes
...
Supports [u,i][8,16,32,64,128] and [nat,dec]
Part of #2350
2022-02-01 22:48:48 -05:00
Folkert
b3d605cade
fix failing debug_assert
2022-01-26 20:22:18 +01:00
Folkert
0298013346
fix logical error
2022-01-26 17:03:49 +01:00
ayazhafiz
0eede1cd86
Generate unique symbols for shadowing identifiers
...
This code has a shadowing error:
```
b = False
f = \b -> b
f b
```
but prior to this commit, the compiler would hit an internal error
during monomorphization and not even get to report the error. The reason
was that when we entered the closure `\b -> b`, we would try to
introduce the identifier `b` to the scope, see that it shadows an
existing identifier, and not insert the identifier. But this meant that
when checking the body of `\b -> b`, we would think that we captured the
value `b` in the outer scope, but that's incorrect!
The present patch fixes the issue by generating new symbols for
shadowing identifiers, so deeper scopes pick up the correct reference.
This also means in the future we may be able to compile and execute code
with shadows, even though it will still be an error.
Closes #2343
2022-01-23 12:35:31 -05:00
Folkert
697a65e77c
builtins can use builtins now
2022-01-16 22:28:36 +01:00
Joshua Warner
bd7b1e5013
Make Loc::new take Positions
2022-01-01 18:20:05 -08:00
Joshua Warner
f19220473a
Rename Located -> Loc
2021-12-22 19:18:22 -08:00
Chelsea Troy
6cf755ad8d
Resolve a bunnnch of merge conflicts
2021-11-29 23:14:29 -06:00
Brendan Hansknecht
d49ac68bcc
Update dep with major version changes
2021-11-05 19:19:37 -07:00
Folkert
a15183a7d1
refactor
2021-11-03 14:09:04 +01:00
Eric Correia
8272ea876f
Get it all to compile!
2021-10-02 13:48:07 -04:00
Jared Ramirez
d69b9173fc
Also store f64 for things like pattern comparisons, etc
2021-08-18 17:18:13 -07:00
Folkert
ceb5cc66fa
use IdentStr
2021-08-03 21:14:36 +02:00
Richard Feldman
e8fc9c5e4c
Thread dep_idents through to LoadedModule
2021-08-01 10:23:16 -04:00
Richard Feldman
5c74bab0ec
Persist scope after canonicalizing defs
2021-08-01 10:23:16 -04:00
Chadtech
ac7386fd27
Merge branch 'trunk' into hash-links
2021-05-24 09:14:52 -04:00
Chadtech
12c0067348
Created scope and idents for module docs, but they appear to be empty when the doc links function tries to use them
2021-05-22 14:06:56 -04:00
Eric Henry
d34f984169
Starting to add no arg tag union
2021-05-17 17:07:19 -04:00
Folkert
48f392f372
fix bad test examples using unbound type alias variables
2021-05-05 19:54:10 +02:00
Folkert
9b0e14ef4c
treat wildcards as rigids
2021-05-03 20:39:29 +02:00
Folkert
95fbc15373
add test
2021-04-23 11:27:36 +02:00
Folkert
ed7906ccbb
fix canonicalization
2021-04-23 09:24:11 +02:00