В Delphi XE или 2006, есть ли способ обнаружить во время компиляции, что неявные преобразования между целыми типами могут потерять данные? Я понимаю, что это можно обнаружить с проверкой времени выполнения. Я бы хотел, чтобы он отметил следующий пример , даже если "большое" значение было 1. (Мы рассматриваем возможность изменения int на bigint для определенных ключей базы данных и хотим определить влияние на большую устаревшую кодовую базу.)
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
small: Integer;
big: Int64;
begin
big := 3000000000000;
small := big; // Detect me!
Writeln(small);
end.