public class Parameter {
flag w;
- //int a;
- //int b;
- //Parameter f;
- //Parameter g;
- //Penguin p;
- //Foo h;
+ int a;
+ int b;
+ Parameter f;
+ Parameter g;
+ Penguin p;
+ Foo h;
public Parameter() {}
public Fooz x;
}
-/*
+
public class Penguin {
int x;
int y;
p1.y = g0;
}
}
-*/
+
// this empty task should still create a non-empty
taskexit( p0{ !f } );
}
-
+*/
task strongUpdates( Foo p0{ f } ) {
Foo a = new Foo();
if( false ) {
- a.x = new Foo();
- a.y = new Foo();
+ a.x = new Foo();
+ a.y = new Foo();
} else if( false ) {
- a.x = new Foo();
- a.y = new Foo();
+ a.x = new Foo();
+ a.y = new Foo();
}
+
// this should effect a strong update
a.x = b;
// p0 points to a multiple-object heap region
// so this should not make a strong update
p0.x = b;
-
+
+
taskexit( p0{ !f } );
}
+/*
task ObjectChainByMethodCalls( Foo a{ f } ) {