compiles just fine and gives me X=0.
static X: [uint, ..1] = [0];
static Z: uint = X[1/0];
does not compile because I'm trying to divide by 0.
And that's because constant expressions get evaluated in two disconnected places depending on the operations they contain.