import IR.TypeUtil;
import IR.Flat.BuildFlat;
import IR.Flat.FlatMethod;
-import IR.Flat.TempDescriptor;
+import IR.Tree.TreeNode;
import Util.Pair;
public class SSJavaAnalysis {
TypeUtil tu;
FlowDownCheck flowDownChecker;
MethodAnnotationCheck methodAnnotationChecker;
+ BuildFlat bf;
// set containing method requires to be annoated
Set<MethodDescriptor> annotationRequireSet;
CallGraph callgraph;
- public SSJavaAnalysis(State state, TypeUtil tu, CallGraph callgraph) {
+ LinearTypeCheck checker;
+
+ public SSJavaAnalysis(State state, TypeUtil tu, BuildFlat bf, CallGraph callgraph) {
this.state = state;
this.tu = tu;
this.callgraph = callgraph;
this.annotationRequireClassSet = new HashSet<ClassDescriptor>();
this.skipLoopTerminate = new Hashtable<MethodDescriptor, Integer>();
this.mapSharedLocation2DescriptorSet = new Hashtable<Location, Set<Descriptor>>();
+ this.bf = bf;
}
public void doCheck() {
doLinearTypeCheck();
+ System.exit(0);
doMethodAnnotationCheck();
if (state.SSJAVADEBUG) {
debugPrint();
set.add(d);
}
+ public BuildFlat getBuildFlat() {
+ return bf;
+ }
+
}