forked from M-Labs/nac3
29 lines
903 B
Plaintext
29 lines
903 B
Plaintext
|
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
|
||
|
|