0
Fixed
[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...
Customer support service by UserEcho
Should read "W525 not detected", but I got the numbers reversed...
Fixed in upcoming 2016.09 release