Так и функция тоже описана внутри онрелиза и при создании массива никаких ошибок не выдается. Или функция внутри себя создает эти элементы и снаружи их не видно? Ведь по идее область видимости массива x - блок онрелиз. И функция в блоке онрелиз. Все должно друг друга видеть и понимать

Что не правильно?