Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1440059481
K-1000
2015-08-20 11:31
2016.05.08
Unable to locate file "Drawer.pas".


15-1440094960
Rouse_
2015-08-20 21:22
2016.05.08
Пятничная головоломка от Розыча


15-1440500315
Masterucs
2015-08-25 13:58
2016.05.08
Как понять, что приложение запустили в виде сервиса?


15-1440451804
Юрий
2015-08-25 00:30
2016.05.08
С днем рождения ! 25 августа 2015 вторник


11-1263726606
GradeMax
2010-01-17 14:10
2016.05.08
Как задать высоту строк в ListView?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский