А не надо досадовать, проверять OMITTED параметров процедуры в рутине метода, это очевидный изврат.
Вообще-то, ничего удивительного здесь нет:
С точки зрения имеющейся реализации, наверное. Но вот с точки зрения банальной логики, имхо это весьма удивительно. На самом деле это все означает, что нельзя проверить опущенные параметры метода в рутине, расположенной в этом методе. Что, на самом деле, является серьезными граблями. Более того, что-то мне подсказывает, что накопали сей факт именно получив по лбу этими граблями. Какой-то программист, видимо, долго не мог понять, почему у него неадекватно работает OMITTED в рутине метода.
- метод Init является методом ЛОКАЛЬНОГО класса (для основной процедуры), т.е. в рамках основной процедуры все методы этого локального класса практически идентичны локальным рутинкам
Опять же только с точки зрения имеющейся реализации. В чем практическая идентичность? Только лишь в том, что метод локального класса и локальная рутина имеют одинаковый доступ к локальным данным процедуры.
- таким образом, все рутинки, как-бы "прицепленные" к методам локального класса, на самом деле являются ПОЛНОЦЕННЫМИ рутинками основной процедуры, со всеми, вытекающими из этого, последствиями!
Ловко ты приравнял метод локального класса к локальной рутине

А как быть с тем, что рутина метода локального класса имеет доступ к локальным данным этого метода? Простым рутинам не дозволяется иметь доступ к данным друг друга, значит некая вложенность (или эмуляция таковой) все же присутствует? Дык почему бы в рамках этой вложенности не обрабатывать OMITTED параметров своего родного метода, а не процедуры?
Поэтому, когда компилятор встречает в такой рутинке директиву OMITTED(), то он, естественно, воспринимает ее применительно к параметрам процедуры, которая является владельцем текущей рутинки.
Что является, имхо, проектной ошибкой компилятора.
Удачи!
__________________________________
Владимир Якимченко (IСQ
16 993 194)
Написал: ClaList(2)