Add static type checks in the parser

- Resolve types for all identifiers.
- Error when identifier is not found.
- Match return type and error when not returning a value when it should.
- Check unreachable code (code after sure return).
- Match argument count and types for function calls.
- Determine if return type of function call matches the assignment.
- Do static type check with match statement when possible.
- Use type hints to determine export type.
- Check compatibility between type hint and explicit export type.
This commit is contained in:
George Marques 2018-05-29 23:16:54 -03:00
parent f7793fc5c9
commit 743053734f
No known key found for this signature in database
GPG key ID: 046BD46A3201E43D
9 changed files with 2984 additions and 286 deletions

File diff suppressed because it is too large Load diff