Implement static analysis of unformed usage on local variables. (#1831)

- An introprocedural forward analysis that checks the may-be-formed states on local variables.
 - Returns compilation error on usage of must-be-unformed variables. 
 - Implemented as a pass of `ASTNode` traversal. 
 - Currently supports detection of: function parameter, return expression and rhs of assign.
This commit is contained in:
Zenong Zhang
2022-08-03 15:28:51 -07:00
committed by GitHub
parent 094311133d
commit 2f4905bf70
10 changed files with 292 additions and 8 deletions
+2 -1
View File
@@ -13,7 +13,8 @@
// CHECK: interface ImplicitAs {
// CHECK: ********** type checking **********
// CHECK: ** declaring interface ImplicitAs
// CHECK: ********** type checking complete **********
// CHECK: ********** resolving unformed variables **********
// CHECK: ********** printing declarations **********
// CHECK: interface ImplicitAs {
// CHECK: ********** starting execution **********
// CHECK: ********** initializing globals **********