Kann der Compiler einen nicht als Warnung darauf hinweisen? Oder gibt es das (schon), falls ja, ab welcher Delphiversion?
Bei guten Bezeichnern für die Variablen passiert das eigentlich fast nie. Globale Variablen habe ich nie (und würde ich sonst mit der
Unit davor bezeichnen, also UnitX.MyVar usw.), private Felder fangen ohnehin immer mit F an, können also nicht verwechselt werden. Parameter für Funktionen fangen bei mir mit A an, damit kann also auch nix passieren.
Es bleiben also nur noch Properties. Und bei denen schreibe ich ggf. Self davor, wenn die Namen so kurz sind, dass Verwechslungsgefahr bestehen könnte. Wenn man da sichergehen möchte, kann man ja immer Self davorschreiben, dann sind sämtliche Verwechslungsmöglichkeiten ausgeräumt.
Eine entsprechende Compilerwarnung gibt es nicht, nein. Denn ob die Variable aus Versehen oder absichtlich so heißt, weiß der Compiler ja nicht. Und bei einem guten Programmierstil sollte sich das Problem ja wie geschrieben auch kaum ergeben (keine Riesenklassen, kurze prägnant bezeichnete Methoden, keine globalen Variablen, private Felder fangen mit F an, Parameter mir A, Typen mit T, ...).