Merge: src: introduce Nit Static Analysis Framework
authorJean Privat <jean@pryen.org>
Sat, 19 Dec 2015 12:27:24 +0000 (07:27 -0500)
committerJean Privat <jean@pryen.org>
Sat, 19 Dec 2015 12:27:24 +0000 (07:27 -0500)
This is the first step in the introduction of a static analsysis framework for the nit language.

This PR introduces the basic behaviors of a StaticAnalysis and ForwardAnalysis.
I added ReachingDefAnalysis as an example of StaticAnalysis implementation.
I also added `nitsaf`, a client example for the saf module.

I suggest to read this PR commit by commit, I splat it in steps:
* introduce base services
* handle ifs constructs
* handle loops constructs
* handle method declaration

Next steps/PRs will be:
* introduce inter-procedural analysis
* use RTA for better inter-procedural analysis precision
* backward analysis
* add more analysis (isset checks, attr isset, unused properties, useless nullables...)

Closes #511.

Pull-Request: #1764
Reviewed-by: Jean Privat <jean@pryen.org>


Trivial merge