Почему «значение H2077, присвоенное X, никогда не использовалось» не встречается со строковыми переменными? - PullRequest
3 голосов
/ 02 апреля 2019

Каждый раз, когда я назначаю переменную без ее использования ...

var
  X : integer;
begin
  X := 123;
end;

При компиляции мне приходит подсказка:

[dcc32 Подсказка] Unit1.pas (30): H2077 Значение, присвоенное 'X', никогда не использовалось

К сожалению, этого не происходит, если неиспользованная переменная имеет значение string.

var
  X : string;
begin
  X := 'hello';
end;

Я воспроизвел такое же поведение на Delphi 2007 и Delphi XE7 , поэтому я думаю, что это ожидаемое поведение.

Почему H2077 подсказка не вызывается для string переменных?

1 Ответ

3 голосов
/ 02 апреля 2019

Кажется, что управляемые типы не вызывают подсказки, когда назначаются и не используются.

Кроме этого, когда оптимизация включена, присвоение также не удаляется, как и типы значений.

Почему подсказки не поднимаются, открыто для спекуляций. Нет веской причины, по которой они не должны этого делать.


См. Также Нет подсказки для назначенной, но неиспользованной "ссылки на процедуру" , сообщается в QP.

...