Форум: "Прочее";
Текущий архив: 2016.05.08;
Скачать: [xml.tar.bz2];
ВнизProject -> Options -> Compiling -> Symbol reference info Найти похожие ветки
← →
Masterucs © (2015-08-21 15:01) [0]Если указанная опция стоит в "None", то при билде проекта ругается:
[DCC Hint] XXX.pas(YYY): H2443 Inline function "Point" has not been expanded because unit "Types" is not specified in USES list
Потому что в модуле XXX.pas вызывается функция Point из Classes.pas:function Point(AX, AY: Integer): TPoint; inline;
Но при этом структура TPoint описана в Types.pas, который не включен в uses модуля XXX.pas
В результате, я так понимаю inline сделать нельзя и функция Point вызывается "обычным" способом.
Но почему, если в указанной опции стоит: "Reference info" - то Warning"а уже нету?
Что вообще это за опция? Совсем немного про это писал Gunsmoker: http://www.gunsmoker.ru/2009/04/delphi_19.html
Но насчет "Symbol reference info" буквально одна строчка... не очень понятно, что это конкретно. Разъясните по русски, пожалуйста!
← →
Masterucs © (2015-08-23 20:37) [1]Неужто никто не знает?! :(
← →
virex(home) © (2015-08-24 10:52) [2]в вопрос не совсем вник но интуиция говорит: попробуйте указать имя желаемого модуля при вызове функции
ModuleName.Point(...)
← →
Masterucs © (2015-08-24 11:18) [3]Удалено модератором
← →
Германн © (2015-08-24 11:45) [4]
> поэтому он не может сделать inline для функции Point.
С чего сделан такой вывод?
> если в указанной опции стоит: "Reference info" - то Warning"а
> уже нету?
А его и так нет. Есть всего лишь Hint.
← →
Masterucs © (2015-08-24 12:45) [5]
> С чего сделан такой вывод?
а что означает эта надпись?
> [DCC Hint] XXX.pas(YYY): H2443 Inline function "Point" has
> not been expanded because unit "Types" is not specified
> in USES list
← →
Германн © (2015-08-24 12:57) [6]Имхо что подробную информацию по этой функции, её переменным и результату показать не будет возможности.
← →
Masterucs © (2015-08-24 13:34) [7]
> подробную информацию по этой функции, её переменным и результату
> показать не будет возможности.
где показать?
← →
Германн © (2015-08-24 13:59) [8]В "Code Browser, Code Explorer и Project Browser".
← →
Masterucs © (2015-08-24 14:14) [9]
> В "Code Browser, Code Explorer и Project Browser".
никаких проблем с отображением. Да и не может их быть, сама IDE прекрасно показывает все типы, даже если они объявлены в неподключенных модулях. Это легко проверить.
К тому же, если функция не была бы inline то хинта также бы не было. Вопрос именно в том, что её нельзя заинлайнить пока исходный модуль не знает всех структур.
← →
Rouse_ © (2015-08-24 18:04) [10]Видимо что-то еще влияет. У меня отключение этой опции не влияет на выдачу хинта.
Вообще "Symbol reference info" - сугубо отладочная и предназначена для работы API, таких как SymGetSymFromAddr и т.п. вызываемых отладчиком интегрированным в IDE.
← →
Masterucs © (2015-08-24 20:51) [11]
> У меня отключение этой опции не влияет на выдачу хинта.
перебилд делал? А то известная фишка дельфи, что изменение опций проекта не влияет на перекомпил.
Вообще, в документации сказано:
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_inline_units_incomplete_xml.html
Может быть, у тебя в опциях компилера есть пункт "Inlining"?
В XE нету, путем тыка удалось обнаружить, что на выдачу хинта влияет именно Symbol reference info
← →
Rouse_ © (2015-08-24 22:33) [12]У меня хе4, ребилд есесно делал.
← →
Германн © (2015-08-25 01:31) [13]
> Вообще, в документации сказано:
Вообще всё что сказано в документации, что в старой, что в новой мне никак не помогает понять какое отношение глагол expand имеет к существительному function.
Возможно это "новояз" разработчиков Дельфи?
← →
Masterucs © (2015-08-25 12:27) [14]
> У меня хе4
в опциях Compilling есть свойство "Inlining"?
← →
Rouse_ © (2015-08-25 13:52) [15]Code inlining control?
← →
Masterucs © (2015-08-25 14:00) [16]Такое свойство и у меня есть. У меня оно не влияет на вывод Hint"а.. Судя по справке - там написано просто "Inlining"...
Но по факту у меня в XE на появление Hint"а влияет именно Project -> Options -> Compiling -> Symbol reference info
Отсюда по умолчанию при сборке Debug версии хинта нету, а при сборке релиза хинт появляется.
← →
Германн © (2015-08-26 00:23) [17]
> Но по факту у меня в XE на появление Hint"а влияет именно
> Project -> Options -> Compiling -> Symbol reference info
>
> Отсюда по умолчанию при сборке Debug версии хинта нету,
> а при сборке релиза хинт появляется.
А что мешает явно указать в uses модуль Types? Есть какие-то серьёзные причины или только религиозные убеждения?
← →
Masterucs © (2015-08-26 08:46) [18]Это очевидно.
Вопрос не в том что делать, а почему Project -> Options -> Compiling -> Symbol reference info влияет на вывод хинта
← →
Rouse_ © (2015-08-26 10:20) [19]Скорее всего получается ошибка IDE, которую позже поправили, бо сам видишь, в ХЕ4 такого поведения нет.
← →
Masterucs © (2015-08-26 10:37) [20]
> Скорее всего получается ошибка IDE
ну коли профи говорят ,что так - значит, так :)
> в ХЕ4 такого поведения нет.
интересно какая у тебя опция повлияет на вывод данного хинта..
← →
Rouse_ © (2015-08-26 12:30) [21]Если не подключать Types то всегда выводится.
← →
Masterucs © (2015-08-26 12:37) [22]
> Если не подключать Types то всегда выводится.
а ты все опции в компилинге перебрал?
← →
Rouse_ © (2015-08-26 13:49) [23]Нет, лениво.
Скачай себе триалку и сам попробуй поэксперементировать.
← →
Masterucs © (2015-08-26 14:54) [24]еще более лениво
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2016.05.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.002 c