It would be really nice to have some kind of semi-automatic refactoring for WITH statements.
with bla do begin
Left := 5;
Right := self.Right;
Parent := nil;
end;
would then become
bla.Left := 5;
bla.Right := Self.Right;
bla.Parent := nil;
Even though bla might not have a Parent field so the code does not compile.
Of course that still does not solve with with multiple identifiers:
with bla, blub do begin
end;