Man bedenke:
Delphi-Quellcode:
with ListView1.Items.Add do
begin
Caption := 'wupp';
SubItems.Add('di');
ImageIndex := 42;
end;
Oder noch besser:
Delphi-Quellcode:
with TWuppdi.Create() do
try
TuWas();
TuNochWas();
finally
Free();
end;
Das kann Refactor nicht wissen und müsste eigentlich alle with-do-Subjekte, die keine lokalen Variablen sind, in lokale Variablen schreiben, um sicher zu funkionieren, selbst wenn es unnötig ist.
Mit etwas Heuristik könnte man das noch verbessern. Wenn das "Subjekt" z.B. eh schon eine Variable ist oder ein direkter Zugriff auf eine Property, die ohne Get-Routine auf eine Membervariable verweist.