-
Notifications
You must be signed in to change notification settings - Fork 79
[WIP] Add existential structs to Checked C #683
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
86 commits
Select commit
Hold shift + click to select a range
78bb3c2
Add a new existential type to the type hierarchy
aeae6b2
Handle existential types in different places
7f958ed
More handling of new ExistentialType
6aeb71e
Add new _Exists token
4163a7a
Handle existentials in a few more places
5372b6a
Handle existentials in additional places (including codegen)
f9ea757
[wip] Add an existential type to clang
e43194b
Desugar type variable in existential
b37ab7a
Fix bug in desugaring of exists
75c9c4c
Add dedicated scopes for existentials
413f16d
Rename some variables
0b01466
[wip] Instantiate existential types
fa606a4
Fix bugs
405fa0e
Better logic for determining whether an Existential is an aggregate
578203c
Disambiguate between expressions and decls in the parser
53a0f15
[wip] add a pack operation and start handling it all over the compiler
86aa6b2
Add support for pack in additional locations
b0b9b3f
Hook up pack operation in parser
8cbd3d8
[wip] parse pack expressions and generate ast node
7983ede
Can now parse pack expressions
8f4ff68
Codegen pack expressions
354cc6d
Slightly better merge function for existential types
b1e574d
Better caching of type applications and existentials
2f341be
Fix typo in comment
5b87c35
Check witness type in pack expressions
8c46da6
Add pack expression in the right place
1f6030d
[wip] parse unpack type specifiers
7c8e5e2
[wip] parse unpack specifiers
e5675cd
Move unpack to custom specifier
7690cb6
Differentiate between unpack variables in same scope
446b329
Add hacky rule for typing unpack init
d2452d8
bug fix
c6fe682
Minor fixes
bc84288
Restructure ExistentialType to contain more than a TypeVariableType f…
242988d
Fix evaluation kind resolution
4d8c235
Better canonical types for existentials
42ddb2a
Simplifying generation of canonical types
a546376
Fix bug in creating existential type
5b7ebc8
Revert changes to numbering of existential type variables
e34fd77
Fix bug in allocation logic
e531285
Implement a visitor that computes free variables
cbeadfa
Comment out logging code
b3f0c2e
Implement alpha renamer and wip canonical type generation
f669735
Hooked up canonicalization to creation of existential types
3267393
Fix bugs
3deb548
handle typedefs in alpha renamer
00306ea
handle type applications
f2eb814
fix bug
dc545f0
fix another bug
49fba21
remoev incorrect canonicalization
fd3bccc
fix bug in insertion to subst map
186570e
fix bug in checking witness type
cc5e1a0
Add TODO
629d1e3
fix codegen of type applications
9673f22
Remove unused static variable
a30a6bf
Emit parsing error while parsing existentials
3ff8f48
Improve wording
e1f0e38
Rename ExistTpe to ExistType
bc9d188
Improve wording
bd21568
Improve wording
007903f
Add issue number to TODOs
f23ff53
Improve wording
357545f
Add explanation
41f9283
Fix typo
92dce16
Check return type of pack expressions (must be an existential)
be767b8
Strengthen assertion
79ee960
Tag comments with issue number
50b0d76
Tag comment
a637a0c
Improve wording
9022551
Replace assertion by runtime error message
50cac91
Check that an unpack initializer has an existential type
4aa5032
Add comment about pack expressions being r-values
9c8fcfc
Remove unneeded comment
2645d62
Compute type linkage info in different way
298162c
Tag comment
485b99e
Improve comment
0d4b28e
Tag comment
766f068
Check for malformed unpacks
c0403de
Fix warning and missing symbol
07102de
Add missing switch case
de74377
Partially disable clang test
40b584c
Fix codegen check
02c5dc3
Fix typo
13774ae
Improve handling of linkage for existentials
c10b52a
Use getAs() instead of manually getting canonical type
3d0caff
Address code review comment
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.