/**
* Array regions
*
* @author Rob Bocchino
*/
class C<region P1> {
region r1, r2;
/**
* Basic array with cells in region r1
*/
int[]<r1> A1;
void m1() {
A1 = new int[10]<r1>;
}
/**
* Multidimensional array with cells in regions r1, r2
*/
int[]<r1>[]<r2> A2;
void m2() {
A2 = new int[10]<r1>[]<r2>;
}
/**
* Partitioned array
*/
int[]<r1:[i]>#i A3 in r1;
void m3() writes r1, r1:[0] {
A3 = new int[10]<r1:[i]>#i;
A3[0] = 1;
}
/**
* Partitioned array with parameter
*/
C<r1:[i]>[]<r1:[i]>#i A4 in r1;
void m4() writes r1, r1:[0] {
A4 = new C<r1:[i]>[10]<r1:[i]>#i;
A4[0] = new C<r1:[0]>();
}
}