org.sonar.l10n.delphi.rules.community-delphi.NonLinearCast.html Maven / Gradle / Ivy
Why is this an issue?
Casting an object to a type that is not guaranteed to have the same memory configuration can
cause access violations if used improperly.
How to fix it
Remove the improper cast by refactoring the code. If the intention is to provide additional
methods to operate on an object, consider using a class helper instead.
type
TAdditionalFunctionality = class(TObject)
public
procedure DebugPrint;
end;
procedure DoStuff(MyObj: TSecretString);
begin
TAdditionalFunctionality(MyObj).DebugPrint;
end;
type
TAdditionalFunctionality = class helper for TSecretString
public
procedure DebugPrint;
end;
procedure DoStuff(MyObj: TSecretString);
begin
MyObj.DebugPrint;
end;
Resources
© 2015 - 2024 Weber Informatics LLC | Privacy Policy