9d28d47d6f
Add an analysis module and integrate with type checker
...
Fixes #34 .
2022-09-15 16:06:04 +02:00
2f359107c4
Multiple fixes related to the type-checker
...
- Add more tests
- Make struct-declarations type-check
- Split environment into type bindings and variable bindings
- Fix kind inference adding the wrong element to the env
2022-09-15 11:49:53 +02:00
c5fe5004b6
Many fixes and add better support for enum-declarations
2022-09-14 22:34:53 +02:00
4cc2b23109
Add experimental support for kind inference
2022-09-14 16:46:30 +02:00
988215cdb3
Multiple updates to the type-checker
...
- Add support for type declarations
- Make polymorphism in struct declarations work
2022-09-11 11:20:21 +02:00
5f373a9d13
Make struct-declarations polymorphic
2022-09-10 16:52:14 +02:00
3611dedf24
Enable parsing enum-declarations
2022-09-10 14:11:04 +02:00
7b3f1948bb
Remove TAny; support operator declarations and arrow type expressions
2022-09-09 22:37:14 +02:00
f1a365e29c
Add support for parsing/type-checking member expressions
2022-09-09 00:00:28 +02:00
00bcaa93ee
Make record types partially work
2022-09-07 12:45:38 +02:00
97150d64e0
Add better support for if-statements in type-checker
2022-09-06 15:17:27 +02:00
88e09052e6
Fix support for nesting of scopes in type-checker
2022-09-05 19:33:37 +02:00
062ca46752
Make recursive function definitions work
2022-09-05 17:25:55 +02:00
20af138fa5
Minor changes
...
- Refactor Constructor to IdentifierAlt
- Make () -> a unify with a
2022-09-01 20:18:47 +02:00
666256ed15
Add support for type-checking recursion and improove Checker.addConstraint
2022-09-01 20:07:09 +02:00
12559e93a2
Fix incorrect typing of ReturnStatement.expression
2022-08-31 13:54:22 +02:00
48f1b0f45c
Add some type-checking logic and improve diagnostics
2022-08-31 13:29:56 +02:00
cda44e4c25
Extend scanner/parser to support more syntactic structures
2022-08-29 16:17:55 +02:00
d813e85d00
Enable parsing of simple let-expressions
2022-08-28 21:12:25 +02:00