TEST: X[i] = i+i*i where 0 <= i < N RESULT: int X[i] = (i + (i * i)) where 0 <= i < N TEST: X[i] = i*i+i where 0 <= i < N RESULT: int X[i] = ((i * i) + i) where 0 <= i < N TEST: X[i] = i-i*i where 0 <= i < N RESULT: int X[i] = (i - (i * i)) where 0 <= i < N TEST: X[i] = i*i-i where 0 <= i < N RESULT: int X[i] = ((i * i) - i) where 0 <= i < N TEST: X[i] = i*i*i where 0 <= i < N RESULT: int X[i] = ((i * i) * i) where 0 <= i < N TEST: X[i] = i+i/i where 0 <= i < N RESULT: int X[i] = (i + (i / i)) where 0 <= i < N TEST: X[i] = i/i+i where 0 <= i < N RESULT: int X[i] = ((i / i) + i) where 0 <= i < N TEST: X[i] = i-i/i where 0 <= i < N RESULT: int X[i] = (i - (i / i)) where 0 <= i < N TEST: X[i] = i/i-i where 0 <= i < N RESULT: int X[i] = ((i / i) - i) where 0 <= i < N TEST: X[i] = i*i/i where 0 <= i < N RESULT: int X[i] = ((i * i) / i) where 0 <= i < N TEST: X[i] = i+i where 0 <= i < N RESULT: int X[i] = (i + i) where 0 <= i < N TEST: X[i] = i-i where 0 <= i < N RESULT: int X[i] = (i - i) where 0 <= i < N TEST: X[i] = i*i where 0 <= i < N RESULT: int X[i] = (i * i) where 0 <= i < N TEST: X[i] = i/i where 0 <= i < N RESULT: int X[i] = (i / i) where 0 <= i < N TEST: X[i] = -(i+i) where 0 <= i < N RESULT: int X[i] = -(i + i) where 0 <= i < N TEST: X[i] = d() where 0 <= i < N RESULT: int X[i] = d() where 0 <= i < N TEST: X[i] = d(i) where 0 <= i < N RESULT: int X[i] = d(i) where 0 <= i < N TEST: X[i] = d(i,i) where 0 <= i < N RESULT: int X[i] = d(i,i) where 0 <= i < N TEST: X[i] = d(i/i) where 0 <= i < N RESULT: int X[i] = d((i / i)) where 0 <= i < N TEST: X[i] = Y[i+i] where 0 <= i < N RESULT: int X[i] = Y[(i + i)] where 0 <= i < N TEST: X[i] = Y[i-i] where 0 <= i < N RESULT: int X[i] = Y[(i - i)] where 0 <= i < N TEST: X[i] = Y[i*i] where 0 <= i < N RESULT: int X[i] = Y[(i * i)] where 0 <= i < N TEST: X[i] = Y[i/i] where 0 <= i < N RESULT: int X[i] = Y[(i / i)] where 0 <= i < N TEST: F[i] = select{F[i-1]+F[i-2] when i > 2} where 0 <= i < N RESULT: int F[i] = select{(F[(i - 1)] + F[(i - 2)]) when (i > 2)} where 0 <= i < N TEST: X[i] = 5 where 0 <= i < N RESULT: int X[i] = 5 where 0 <= i < N TEST: X[i] = x where 0 <= i < N RESULT: int X[i] = x where 0 <= i < N TEST: X[i] = y[i] where 0 <= i < N RESULT: int X[i] = y[i] where 0 <= i < N TEST: X[i] = y[i,3,r] where 0 <= i < N RESULT: int X[i] = y[i,3,r] where 0 <= i < N TEST: X[i] = min{5 where 0 <= k < i} where 0 <= i < N RESULT: int X[i] = min{5 where 0 <= k < i} where 0 <= i < N TEST: X[i] = min{x where 0 <= k < i} where 0 <= i < N RESULT: int X[i] = min{x where 0 <= k < i} where 0 <= i < N TEST: X[i] = min{y[i] where 0 <= k < i} where 0 <= i < N RESULT: int X[i] = min{y[i] where 0 <= k < i} where 0 <= i < N TEST: X[i] = min{y[i,3,r] where 0 <= k < i} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] where 0 <= k < i} where 0 <= i < N # NB: special handling of empty whens TEST: X[i] = min{5} where 0 <= i < N RESULT: int X[i] = min{5 when true} where 0 <= i < N TEST: X[i] = min{x} where 0 <= i < N RESULT: int X[i] = min{x when true} where 0 <= i < N TEST: X[i] = min{y[i]} where 0 <= i < N RESULT: int X[i] = min{y[i] when true} where 0 <= i < N TEST: X[i] = min{y[i,3,r]} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when true} where 0 <= i < N TEST: X[i] = min{5 when true} where 0 <= i < N RESULT: int X[i] = min{5 when true} where 0 <= i < N TEST: X[i] = min{x when true} where 0 <= i < N RESULT: int X[i] = min{x when true} where 0 <= i < N TEST: X[i] = min{y[i] when true} where 0 <= i < N RESULT: int X[i] = min{y[i] when true} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when true} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when true} where 0 <= i < N TEST: X[i] = min{5 when 2 < 1} where 0 <= i < N RESULT: int X[i] = min{5 when (2 < 1)} where 0 <= i < N TEST: X[i] = min{x when 2 < 1} where 0 <= i < N RESULT: int X[i] = min{x when (2 < 1)} where 0 <= i < N TEST: X[i] = min{y[i] when 2 < 1} where 0 <= i < N RESULT: int X[i] = min{y[i] when (2 < 1)} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when 2 < 1} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when (2 < 1)} where 0 <= i < N TEST: X[i] = min{5 when 2 < 1 and 3 >= 5, 4} where 0 <= i < N RESULT: int X[i] = min{5 when ((2 < 1) and (3 >= 5)),4 when true} where 0 <= i < N TEST: X[i] = min{x when 2 < 1 and 3 >= 5, 4} where 0 <= i < N RESULT: int X[i] = min{x when ((2 < 1) and (3 >= 5)),4 when true} where 0 <= i < N TEST: X[i] = min{y[i] when 2 < 1 and 3 >= 5, 4} where 0 <= i < N RESULT: int X[i] = min{y[i] when ((2 < 1) and (3 >= 5)),4 when true} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when 2 < 1 and 3 >= 5, 4} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when ((2 < 1) and (3 >= 5)),4 when true} where 0 <= i < N TEST: X[i] = min{5 when 2 <= 1 or 3 > 5, 4 when 1<2} where 0 <= i < N RESULT: int X[i] = min{5 when ((2 <= 1) or (3 > 5)),4 when (1 < 2)} where 0 <= i < N TEST: X[i] = min{x when 2 <= 1 or 3 > 5, 4 when 1<2} where 0 <= i < N RESULT: int X[i] = min{x when ((2 <= 1) or (3 > 5)),4 when (1 < 2)} where 0 <= i < N TEST: X[i] = min{y[i] when 2 <= 1 or 3 > 5, 4 when 1<2} where 0 <= i < N RESULT: int X[i] = min{y[i] when ((2 <= 1) or (3 > 5)),4 when (1 < 2)} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when 2 <= 1 or 3 > 5, 4 when 1<2} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when ((2 <= 1) or (3 > 5)),4 when (1 < 2)} where 0 <= i < N TEST: X[i] = min{5 when 1<2 or 4>5 and 1=2} where 0 <= i < N RESULT: int X[i] = min{5 when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: X[i] = min{x when 1<2 or 4>5 and 1=2} where 0 <= i < N RESULT: int X[i] = min{x when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: X[i] = min{y[i] when 1<2 or 4>5 and 1=2} where 0 <= i < N RESULT: int X[i] = min{y[i] when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when 1<2 or 4>5 and 1=2} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: X[i] = min{5 when a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{5 when (a != x[i])} where 0 <= i < N TEST: X[i] = min{x when a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{x when (a != x[i])} where 0 <= i < N TEST: X[i] = min{y[i] when a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{y[i] when (a != x[i])} where 0 <= i < N TEST: X[i] = min{y[i,3,r] when a!= x[i]} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when (a != x[i])} where 0 <= i < N TEST: int X[i] = min{5 when ! a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{5 when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{x when ! a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{x when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{y[i] when ! a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{y[i] when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{y[i,3,r] when ! a!=x[i]} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{5 when !(a!=x[i])} where 0 <= i < N RESULT: int X[i] = min{5 when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{x when !(a!=x[i])} where 0 <= i < N RESULT: int X[i] = min{x when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{y[i] when !(a!=x[i])} where 0 <= i < N RESULT: int X[i] = min{y[i] when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{y[i,3,r] when !(a!=x[i])} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when !(a != x[i])} where 0 <= i < N TEST: int X[i] = min{5 when (1<2 or 4>5) and 1=2} where 0 <= i < N RESULT: int X[i] = min{5 when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: int X[i] = min{x when (1<2 or 4>5) and 1=2} where 0 <= i < N RESULT: int X[i] = min{x when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: int X[i] = min{y[i] when (1<2 or 4>5) and 1=2} where 0 <= i < N RESULT: int X[i] = min{y[i] when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: int X[i] = min{y[i,3,r] when (1<2 or 4>5) and 1=2} where 0 <= i < N RESULT: int X[i] = min{y[i,3,r] when (((1 < 2) or (4 > 5)) and (1 = 2))} where 0 <= i < N TEST: int X[i,j] = min{5} where 0 <= i < N RESULT: int X[i,j] = min{5 when true} where 0 <= i < N TEST: int X[i,j] = min{5} where 0 <= i < N and 0 <= j < M RESULT: int X[i,j] = min{5 when true} where 0 <= i < N and 0 <= j < M TEST: int X[i] = i Y[j] = j where 0 <= i < N and 0 <= j < N RESULT: int X[i] = i int Y[j] = j where 0 <= i < N and 0 <= j < N TEST: float X[i] = i+i where 0 <= i < N RESULT: float X[i] = (i + i) where 0 <= i < N TEST: float X[i] = i-i where 0 <= i < N RESULT: float X[i] = (i - i) where 0 <= i < N TEST: float X[i] = i*i where 0 <= i < N RESULT: float X[i] = (i * i) where 0 <= i < N TEST: float X[i] = i/i where 0 <= i < N RESULT: float X[i] = (i / i) where 0 <= i < N TEST: char X[i] = i+i where 0 <= i < N RESULT: char X[i] = (i + i) where 0 <= i < N TEST: char X[i] = i-i where 0 <= i < N RESULT: char X[i] = (i - i) where 0 <= i < N TEST: char X[i] = i*i where 0 <= i < N RESULT: char X[i] = (i * i) where 0 <= i < N TEST: char X[i] = i/i where 0 <= i < N RESULT: char X[i] = (i / i) where 0 <= i < N TEST: globals val j : int in char X[i] = i+j where 0 <= i < N end RESULT: globals val j : int in char X[i] = (i + j) where 0 <= i < N end TEST: parameters val j : int in char X[i] = i+j where 0 <= i < N end RESULT: parameters val j : int in char X[i] = (i + j) where 0 <= i < N end TEST: globals val j : int val k : float in char X[i] = i+j where 0 <= i < N end RESULT: globals val j : int val k : float in char X[i] = (i + j) where 0 <= i < N end TEST: parameters val j : int val k : float in char X[i] = i+j where 0 <= i < N end RESULT: parameters val j : int val k : float in char X[i] = (i + j) where 0 <= i < N end TEST: globals fun f(int,int) : int in char X[i] = f(i,i) where 0 <= i < N end RESULT: globals fun f(int, int) : int in char X[i] = f(i,i) where 0 <= i < N end TEST: parameters fun f(int,int) : int in char X[i] = f(i,i) where 0 <= i < N end RESULT: parameters fun f(int, int) : int in char X[i] = f(i,i) where 0 <= i < N end TEST: globals fun f(int,char) : int in char X[i] = f(i,i) where 0 <= i < N end RESULT: globals fun f(int, char) : int in char X[i] = f(i,i) where 0 <= i < N end TEST: parameters fun f(float,int) : int in char X[i] = f(i,i) where 0 <= i < N end RESULT: parameters fun f(float, int) : int in char X[i] = f(i,i) where 0 <= i < N end TEST: globals matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end RESULT: globals matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end TEST: parameters matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end RESULT: parameters matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end TEST: locals matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end RESULT: locals matrix F[N, N] : int in char X[i] = F(i,i) where 0 <= i < N end