It is a rule-local, non-interprocedural analysis and it also uses VarAnalysisUtil. New analysis checks whether free variables can "escape" principal constraint rules inside principal constraints. If there is such escaped variable, then it is a signal that this type system is designed with non-local type inference in mind. Otherwise there's no need to produce principal constraints with free logicals as arguments. So, no principal constraints with free vars -- no type inference is possible. |
||
|---|---|---|
| .. | ||
| jetbrains.mps.lang.coderules | ||
| jetbrains.mps.lang.controlflow | ||
| jetbrains.mps.lang.smodel.types | ||
| jetbrains.mps.lang.typechecking | ||
| jetbrains.mps.logic | ||
| jetbrains.mps.typechecking.annotation | ||
| jetbrains.mps.typechecking.testlang | ||