nac3/todo.txt

29 lines
903 B
Plaintext
Raw Normal View History

2020-12-31 11:39:26 +08:00
Errors:
- Not supported
- Only * is supported
- Expected * in *, but got *
- Divergent type in (construct), (location 1), (location 2)
- Unknown field
- Unbounded variable
- Different variable
- Different domain
- * is not subclass of *
- Type not equal
- Incorrect number of parameters
GlobalContext:
- Separate from typedefs
- Interact with python intepreter to get data
- Primitive Type Instance List
- Symbol Table (readable, ever defined)
- TypeVar definition stack
- Provide subst, inv_subst, blablabla
- Cache type var method lookup (dropped when related assumptions are changed)
- Responsible for printing the error (lookup module/type info, handle line number offset)
Name Resolution:
- Get class/methods, track module via `inspect.getmodule`
- GlobalContext store function/class - module association, perform name
resolution in the module when identifier is unbounded, and check its type