The following code does not produce a warning W503. If self is removed there is a warning.
type
TNoWarning = class
private
FText: String;
public
Procedure SetText(const AText: String);
end;
{ TNoWarning }
procedure TNoWarning.SetText(const AText: String);
begin
self.FText:= FText;
end;
I have found a similar thing with this code:
procedure AMethod(AString : string);
begin
System.Delete(AString, 1, 1);
end;
FixInsight says that "AString" is missing "const". If you remove the "System.", all is good.
There are a lot of false positives like this. If a string is passed into a method (without const) and the same string is passed into another method where it is modified, FixInsight complains about the missing const