fooM.doSomethingArgs(fieldH,fieldM);
doit2();
+ doOwnLattice();
+ doDelta();
}
public void doit2(){
localVarL=fieldH;
}
+ // method has its own local variable lattice
+ @LATTICE("mL<mH,THISLOC=mH")
+ public void doOwnLattice(){
+ @LOC("mL") int varL;
+ @LOC("mH") int varH;
+ varL=varH;
+ }
+
+
+ @LATTICE("mL<mH,THISLOC=mH")
+ public void doDelta(){
+ @LOC("DELTA(mH,testH)") int varDelta;
+ // LOC(varDelta) is slightly lower than [mH, testH]
+
+ @LOC("DELTA(DELTA(mH,testH))") int varDeltax2;
+ // applying double delta to [mH,testH]
+
+ varDelta=fieldH; // [mH,testH] -> DELTA[mh,testH]
+ varDeltax2=varDelta; //DELTA[mh,testH] -> DELTA[DELTA[mh,testH]]
+
+ fieldM=varDeltax2; // DELTA[DELTA[mh,testH]] -> [mH,testM]
+ }
+
}
+
+
@LATTICE("FC<FB,FB<FA")
@METHODDEFAULT("fm_L<fm_M1,fm_L<fm_M2,fm_M1<fm_H,fm_M2<fm_H,THISLOC=fm_H")
class Foo{