Commit graph

916 commits

Author SHA1 Message Date
ayazhafiz
02e1a98cac Remove redundant member 2022-04-07 22:19:30 -04:00
ayazhafiz
304a32ef0a Typo 2022-04-07 20:51:21 -04:00
Ayaz Hafiz
1ca3dad1e2 Allow complicated return type 2022-04-07 17:21:17 -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
Ayaz Hafiz
884d07344e Clippy 2022-04-07 17:21:17 -04:00
Ayaz Hafiz
66ec1b4a84 Basic canonicalization and error checking for abilities 2022-04-07 17:21:17 -04:00
Ayaz Hafiz
d3b848fa46
Clippy 2022-04-06 22:24:14 -04:00
Ayaz Hafiz
a3ac68a41f
Split up Defs into TypeDef and ValueDef
Just a refactoring PR. This is useful because during canonicalization
we always process type defs first, then value defs. With abilities this
distinction continues to grow; in that case, we have patterns associated
with types that we want to process before patterns from values.
2022-04-06 22:18:57 -04:00
Ayaz Hafiz
9fbc525d02
Make sure float suffixes are parsed out after can
Before we hit mono, we need to make sure the suffixes of numeric
literals are parsed out from the literal string, so that we don't try to
parse something whose type we already know but has the extraneous
suffix.

Co'ed with @tagraves
2022-04-05 11:32:34 -04:00
Folkert
0dd2cec09a
update with new clippy lints 2022-03-31 19:34:51 +02:00
Richard Feldman
cce590dee5
Merge pull request #2761 from rtfeldman/simplify-unused-defs
Remove unneeded work in canonicalization
2022-03-23 10:10:05 -04:00
Richard Feldman
750fbf2dcf
Merge pull request #2766 from rtfeldman/simplify-identids
simplify IdentIds
2022-03-22 20:23:56 -04:00
Folkert
a67bb29a36
remove hashmap 2022-03-22 21:58:49 +01:00
Folkert
f25afe4629
skip registering of debug symbols in hot loop 2022-03-22 18:51:56 +01:00
Folkert
7029717cd0
fix missing import 2022-03-21 23:46:25 +01:00
Folkert
725eb217d8
more vecs, less sets 2022-03-21 23:20:57 +01:00
Folkert
14b53c0ccf
simplify local_successors 2022-03-21 23:16:07 +01:00
Folkert
cee1a787c9
and remove everything because it has no effect 2022-03-21 23:07:27 +01:00
Folkert
1b1a7b0385
more cleaned up 2022-03-21 22:54:24 +01:00
Folkert
a170f461e0
cleanup 2022-03-21 22:44:14 +01:00
Folkert
cc9873eb6d
exploration 2022-03-21 22:41:32 +01: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
hafiz
418e71e95c
Merge pull request #2755 from rtfeldman/dense-let-constraints
Constraint gen tweaks
2022-03-19 20:39:55 -04:00
Folkert
f5ebc5bec9
add some Constraints statistics reporting 2022-03-19 20:50:22 +01:00
Folkert
9ac194a3b3
store Str.Str type in a compact way 2022-03-19 20:49:39 +01:00
Folkert
55d9dc745c
track if an alias is exposed 2022-03-19 17:10:29 +01:00
Folkert
1429b105a1
use (name, variable) pair as the unique key 2022-03-19 12:13:13 +01:00
Folkert
f804c88711
spelling 2022-03-19 00:29:57 +01:00
Folkert
ce4f47d2e9
remove clones in IntroducedVariables clone 2022-03-19 00:03:30 +01:00
Folkert
4e315797b0
expose ImMap entry 2022-03-19 00:00:56 +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
83225cc469
ensure lambda set variables are freshly instantiated when instantiating an alias 2022-03-18 20:11:55 +01:00
Folkert
d6f0005fb3
bubble up lambda sets used by inner aliases 2022-03-18 20:04:07 +01:00
Folkert
a3b00fbf55
Merge branch 'explicit-closed-tag-record' into delay-instantiating-aliases 2022-03-17 20:34:52 +01:00
Folkert
34e566965d
implement can crate 2022-03-17 19:04:24 +01:00
Folkert
b38ff78422
make extension check work again 2022-03-16 22:19:48 +01:00
Folkert
f868410a91
also skip opaque aliases for now 2022-03-16 22:09:39 +01:00
Folkert
48b6cd09c7
conditionally use a DelayedAlias 2022-03-16 18:29:40 +01:00
Folkert
7f63e09272
remember recursion variable when making alias recursive 2022-03-16 14:52:34 +01:00
Folkert
1dacf29879
make sure aliases are not forgotten 2022-03-16 14:36:24 +01:00
Folkert
b3dce7317d
hook up aliases 2022-03-15 22:23:40 +01:00
ayazhafiz
8aaf614481 Improve error message 2022-03-15 11:18:02 -05:00
ayazhafiz
787c8ee3a5 s/occurence/occurrence/g 2022-03-14 17:50:55 -05:00
ayazhafiz
8810a48a52 fmt 2022-03-14 17:47:29 -05:00
ayazhafiz
3da34fc843 Report unbound type variables in aliases, opaques
Closes #2726
2022-03-14 17:42:45 -05:00
Folkert
6baae55980
add equal_types_with_storage helper 2022-03-13 22:46:41 +01:00
Folkert
e8bf5fa378
prevent clone for all function signatures 2022-03-13 22:35:56 +01:00
Folkert
15ac77567a
make rigid variable introducion more obvious 2022-03-13 18:27:42 +01:00
Folkert
d31ea3e71f
clarify import constraint 2022-03-13 17:59:33 +01:00