Я хотел бы знать, может ли следующий код когда-либо завершиться ошибкой с нарушением прав доступа или он безопасен. Является ли первый Член оператора с оператором AND всегда проверяется как первый или может быть (в результате какой-то оптимизации компилятора или чего-то еще) второй проверяется как первый?
var
Item: TSomething;
procedure DoSomething;
begin
if Assigned(Item) and (Item.SomeProperty) then
DoSomethingElse;
end;
Является ли приведенный выше код определенно безопасным?
Спасибо!