Страница 1 из 1

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

Добавлено: 22 Октябрь 2014, 11:04
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
Не пойму, что не нравится? Не криминал, конечно, но утомило.

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

Добавлено: 22 Октябрь 2014, 11:20
Игорь Столяров
Не правда ваша ... Это криминал - дублирование имен в содержании очереди может
привести к неоднозначности при обращении по имени, что в общем-то компилятор
пытается исключить заблокировав повторное объявление.

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

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

LOC:FQueue1         Like(File:Queue),Pre(HZ1)
LOC:FQueue2         Like(File:Queue),Pre(HZ2)
LOC:FQueue3         Like(File:Queue),Pre(HZ3)
....

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

Добавлено: 22 Октябрь 2014, 12:36
kreator
Like не проходит, Directory не принимает тип. Залез в исходники. Правильно так:

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

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