// then propagate back just up the edges from hrn
ChangeTupleSet Cx = R.unionUpArityToChangeSet(O);
+
HashSet<ReferenceEdge> todoEdges = new HashSet<ReferenceEdge>();
Hashtable<ReferenceEdge, ChangeTupleSet> edgePlannedChanges =
edgesWithNewBeta);
+ if( edgeY.getBetaNew().equals( new ReachabilitySet() ) ) {
+ edgeY.setBetaNew( new ReachabilitySet( new TokenTupleSet().makeCanonical() ).makeCanonical() );
+ }
- //System.out.println( edgeY.getBetaNew() + "\nbeing pruned by\n" + hrnX.getAlpha() );
+ /*
+ System.out.println( "---------------------------\n" +
+ edgeY.getBetaNew() +
+ "\nbeing pruned by\n" +
+ hrnX.getAlpha() +
+ "\nis\n" +
+ edgeY.getBetaNew().pruneBy(hrnX.getAlpha())
+ );
+ */
// create the actual reference edge hrnX.f -> hrnY
ReferenceEdge edgeNew = new ReferenceEdge(hrnX,
flag w;
int a;
int b;
- Parameter f;
- Parameter g;
- Penguin p;
- Foo h;
+ //Parameter f;
+ //Parameter g;
+ //Penguin p;
+ //Foo h;
- public Parameter() { a = 0; b = 0; f = null; g = null; }
+ public Parameter() {} // a = 0; b = 0; f = null; g = null; }
- public void bar() { foo(); }
- public void foo() { bar(); }
+ //public void bar() { foo(); }
+ //public void foo() { bar(); }
+
+ static public void proof( Fooz p0, Fooz p1 ) {
+ Fooz c = new Fooz();
+ Fooz d = new Fooz();
+
+ c.x = d;
+ p0.x = c;
+ p1.x = d;
+ }
+}
+
+public class Fooz {
+ public Fooz() {}
+ public Fooz x;
}
+/*
public class Penguin {
int x;
int y;
p0.x = g1;
}
- /*
static public void m2_( Foo p0 ) {
Foo g0 = new Foo();
p0.y = p1;
p1.y = p0;
}
- */
}
-
+*/
// this empty task should still create a non-empty
// a heap region that is multi-object, flagged, not summary
task Startup( StartupObject s{ initialstate } ) {
- Parameter p0 = new Parameter();
+ //Parameter p0 = new Parameter();
//int a, b, c;
+ Parameter.proof( null, null );
+ /*
int a = 1;
int b = 2;
int c = 3;
b = c;
a = b;
-
+ */
taskexit( s{ !initialstate } );
}
}
*/
+/*
task methodTest01_( Foo p0{ f }, Foo p1{ f } ) {
Foo a0before = new Foo();
taskexit( p0{ !f }, p1{ !f } );
}
-
+*/
/*
task methodTest02_( Foo p0{ f }, Foo p1{ f } ) {