Предупреждение о повторном использовании File:Queue

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Предупреждение о повторном использовании File:Queue

Сообщение kreator »

C8.0.9759, C9.1.11313. Воспользовался описанием очереди для Directory:

Код: Выделить всё

LOC:FQueue           File:Queue

Компилятор даёт предупреждения:

Код: Выделить всё

Label duplicated, second used: FILE:ATTRIB
Label duplicated, second used: FILE:SIZE
Label duplicated, second used: FILE:TIME
Label duplicated, second used: FILE:DATE
Label duplicated, second used: FILE:SHORTNAME
Label duplicated, second used: FILE:NAME
Не пойму, что не нравится? Не криминал, конечно, но утомило.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Re: Предупреждение о повторном использовании File:Queue

Сообщение Игорь Столяров »

Не правда ваша ... Это криминал - дублирование имен в содержании очереди может
привести к неоднозначности при обращении по имени, что в общем-то компилятор
пытается исключить заблокировав повторное объявление.

А лечится элементарно, достаточно задать префикс очереди:

Код: Выделить всё

LOC:FQueue1         Like(File:Queue),Pre(HZ1)
LOC:FQueue2         Like(File:Queue),Pre(HZ2)
LOC:FQueue3         Like(File:Queue),Pre(HZ3)
....
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Re: Предупреждение о повторном использовании File:Queue

Сообщение kreator »

Like не проходит, Directory не принимает тип. Залез в исходники. Правильно так:

Код: Выделить всё

LOC:FQueue           QUEUE(File:Queue),PRE(FQ)
                             END
А проблема, наверно, из-за того, что один нехороший человек (©) назвал очередь File:Queue и префикс ей дал FILE. Я с каких-то пор перестал пользоваться префиксами, и часто пользуюсь локальными очередями, созданными по типу другой (синтаксис описания в первом моём посте). Не ожидал такого подвоха.
We are hard at work… for you. :)
Ответить