package valuepath; public class ValuePathTest { public static void main(String[] args) { // use = <s, {v1(s0), v2(s1), v3(s2)}>; data used at s, produced by s0, s1, s2 // s0: LDC 20 ; use = <s0, {v1(null)}> // s1: LDC 10 ; use = <s1, {v1(null)}> // s2: invoke box(int); use = <s2, {v1(s1)}> ; path<s2, {null,s1,s2}> // s2_1: LDC 30 ; use = <s2_1, {v1{null}}> // s2_2: ADD ; // s3: invoke call(int,Object) ; use = <s3, {v1(s0),v2(s2)}> ; path<s3,{} // PATH = // s4: invoke println ; use = <s4, {v1(s3)}> // if s2 was deleted, then all value produced by s2 (v?(s2)) must be subst with v?( // hard case: if s3 was deleted, then } }