Assignment compatibility with array indexing

When an element of an array variable is being referenced, the value of the index expression shall be assignment compatible with the index type of the array variable.

For example given:

   var x : array[1..10] of integer;


   x[i] := 20;

then i (the value of the index expression) shall be assignment compatible with 1..10 (the index type of the array variable).