А в чем проблема... ни одно из присваиваний в процедуре в данном вызове не валидно. (и БЕЗ РАЗНИЦЫ выполняется код конкретного присваивания или нет), компилируемый текст есть в наличии, размеры массивов известны (тут ... достаточно просто проверить все присваивания в ТЕКСТЕ процедуры)... другое дело, если эта процедура была бы определена в другом (откомпилированном модуле), а вызывалась бы в текущем (но я и НЕ УТВЕРЖДАЛ, что подобная проверка ВСЕГДА возможна) -я говорил, что оптимально будет если это возможно , то компайл тайм, если нет - рантайм.... впрочем я в 3 раз повторяюсь.