powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Имена методов зависят от регистра?
12 сообщений из 12, страница 1 из 1
Имена методов зависят от регистра?
    #37793431
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда думал, что да. Это кажется логичным, т.к. ИмяМетода компилируется в *.INT и *.OBJ-коде в метку zИмяМетода , а имена меток в COS регистрозависимы. Об этом и в документации есть:
ДокументацияCase Sensitivity
Some parts of ObjectScript are case-sensitive while others are not. Generally speaking, the user-definable parts of ObjectScript are case-sensitive while keywords are not:
Case-sensitive: local variable names, process-private global names, global names, variable subscript names, class names, method names , property names, routine names, macro names, label names, lock names, passwords, Embedded SQL host variable names, Embedded SQL marker strings.
...Однако сегодня меня "носом ткнули": оказывается, если в классе определены методы с именами, совпадающими с точностью до регистра, Cache выдаёт ошибку при компиляции $$$ElementSameNameInCase (5117). Проверено в Cache 2010.1.4 и в 2011.1.4.
Как думаете, коллеги, это бага или фича?
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37793438
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovКак думаете, коллеги, это бага или фича?
SQL...
Т.к. именно там я и натолкнулся на что-то подобное. Регистр был разный, а там на регистр не смотрят...
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37793442
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечу сам себе:Док-яClass Names
All identifiers related to classes (class names, property names, method names, etc.) are case-sensitive. For purposes of uniqueness, however, such names are considered to be not case-sensitive; that is, two class names cannot differ by case alone. Т.е. независимость от регистра односторонняя:нельзя вызвать метод, допустив ошибку в регистре его имени
и в то же время имена методов не должны отличаться только регистром

Это касается не только методов, но и прочих элементов определения класса,
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37793455
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Да, похоже причина в этом. Но фича проявляется в любых классах, а не только в %Persistent. Видимо, правило сделали общим для всех классов (а не только для хранимых) для упрощения реализации.
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37793460
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovВидимо, правило сделали общим для всех классов (а не только для хранимых) для упрощения реализации.
Наверное...
Я просто сразу сделал для себя оргвыводы и проблем больше не имел...
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37797830
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код который мне приходится поддерживать, по какой то уже неизвестной далекой причине содержит методы с одинаковым именем но имеет различия в регистре, для того чтобы код компилировался используем специальный флаг в одном из системных глобалов, сейчас не скажу, потому как в отпуске, вернусь в понедельник, напишу.
на деле конечно нужно от этого избавиться но пока как то руки не доходят.
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37797855
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://docs.intersystems.com/cache20121/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_classes#GOBJ_classes_idrules]General Identifier Rules for Classes and Class Members Цитата из документацииIdentifiers preserve case: you must exactly match the case of a name; at the same time, two classes cannot have names that differ only in case. For example, the identifiers “id1” and “ID1” are considered identical for purposes of uniqueness.
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37797858
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37797951
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,
спасибо, но разве здесь 12551073 не то же самое сказано, только другими словами?

DAiMor,
мы к счастью лишь недавно (буквально на днях) наступили на эти грабли, и подавили болезнь в зародыше :)
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37798160
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov ,

То же самое.
Это было скорее в копилку ссылок по теме.
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37803577
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как и обещал флаг который дает возможность компилить код с разным регистром методов
s ^%qCacheObjectSys("strictchecking")=0
...
Рейтинг: 0 / 0
Имена методов зависят от регистра?
    #37803598
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В дополнение к сказанному DAiMor : Class Member Naming Checks Made More Strict
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Имена методов зависят от регистра?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]