hm-inference #6

Merged
sb10q merged 136 commits from hm-inference into master 2021-08-19 11:46:50 +08:00
1 changed files with 10 additions and 10 deletions
Showing only changes of commit 52a82e8a39 - Show all commits

View File

@ -15,20 +15,20 @@ caller to specify which methods should be compiled). After type checking, the
compiler would analyse the set of functions/classes that are used and perform compiler would analyse the set of functions/classes that are used and perform
code generation. code generation.
Symbol resolver:
- Str -> Nac3Type
- Str -> Value
value could be integer values, boolean values, bytes (for memcpy), function ID value could be integer values, boolean values, bytes (for memcpy), function ID
(full name + concrete type) (full name + concrete type)
## Current Plan ## Current Plan
1. Write out the syntax-directed type checking/inferencing rules. Fix the rule Type checking:
for type variable instantiation.
2. Update the library dependencies and rewrite some of the type checking code. - [x] Basic interface for symbol resolver.
3. Design the symbol resolver API. - [x] Track location information in context object (for diagnostics).
4. Move tests from code to external files to cleanup the code. - [ ] Refactor old expression and statement type inference code. (anto)
- [ ] Error diagnostics utilities. (pca)
- [ ] Move tests to external files, write scripts for testing. (pca)
- [ ] Implement function type checking (instantiate bounded type parameters),
loop unrolling, type inference for lists with virtual objects. (pca)