Check prefix for parameter
Check if the paramter of a method have a prefix:
var Parameter: v
out Parameter: o
other Parameter: a
So you can see what type of parameter is used.
unicodestring
Methods like this with Unicodestring
procedure test(s: UnicodeString);
Should have
O801 CONST missing for unmodified string parameter 's'
C109 Unneeded boolean comparison
I have downloaded Trial Version of fixinsight.But there are too many false positive warnings.
for example
if not( IdTelnet1.Connected ) then
begin
Timer1Lan.Enabled := false;
Timerc.Enabled := True;
exit;
end;
or
b := sepdate(logstr, 22, 8, log.month, log.Day, log.Year);
if b = false then
begin
ok := false;
exit;
end;
....
Or
O801 CONST missing for unmodified string parameter 'S' for function define
function SepTime(S: string; Var hour, minute: word): boolean;
am I do something wrong?
Warning for unneeded FixInsight ignores
IF some //FI:CODE will become obsolete by the changes into the file, there shoudl be warnign that there is Ignore rule added, but it is not needed anymore.
Add an option to "ignore comments" to rule c101
specify units to processing
Better handling of invalid .ficfg files
Today I upgraded our test system to FI 2016.9. When I copied settings from DefaultSettings.ficfg into our config, I accidentally added two closing xml tags.
This invalid ficfg file caused a crash of FixInsight with an access violation in FixInsight.Services.dll. It was easy enough to solve, but a proper error message like "the configuration file '%s' is not a valid xml file" would be helpful.
[W504] not detected when class is declared in the implementation part
There's a bug with the W504 detection in FixInsight 2016.04, when the class is declared in the implementation part of a unit.
In the following code, there should be a W504 and a W525 detected, but only the 504 is shown and it is shown in the wrong location.
unit W504Test; interface uses System.Classes; // Declare class in implementation, only the 504 warning is thrown in destructor // nothing is shown for constructor implementation type TBinWriter = class end; TContentBuilder = class(TStringList) private FBinWriter: TBinWriter; public constructor Create(ABinWriter: TBinWriter); destructor Destroy; override; end; // Declare class in interface, behaviour is correct // implementation constructor TContentBuilder.Create(ABinWriter: TBinWriter); begin // inherited Create; FBinWriter := ABinWriter; end; destructor TContentBuilder.Destroy; begin FBinWriter := Nil; // inherited; end; end.
This FixInsight bug bit me really hard until I spotted the missing "inherited create" bug in my code...
Fatal parser error
With the current code, i got a fatal parser error: unit Artikelmanager.OrmKonstanten; interface type TOrmFeldInfo = record Name: string; Laenge: Integer; end; KORMInfoDruckvorlage = class(TObject) public const Name: TOrmFeldInfo = (Name: string; Laenge: Integer); end; implementation end.
Occurred O801 warning at the method of property getter.
Hello This is JH Jang from Korea.
Thank you for great tools.
Actually, I wasn't care it before using the FixInsight. I work with Windows 10 and Berlin 10.1.
If the property has a index(e.g. property foo[Index: Integer]: String read GetFoo, property bar[Idx: Integer]: Integer index 1 read GetBar ...), the get method's parameter cannot declared with const type in a every case.
I hope to filtering it.
Best regard.
Customer support service by UserEcho