anchor.diff:        var syntaxTree: TSyntaxNode; var doParseUnit, doAbort: boolean);
       procedure IndexerUnitParsed(Sender: TObject; const unitName: string; const fileName: string;
         var syntaxTree: TSyntaxNode; syntaxTreeFromParser: boolean; var doAbort: boolean);
  +    procedure LoadCacheInfo(const folder: string);
       procedure SetSyntaxFilter(const value: TProc<TSyntaxNode>);
     public
       constructor Create(const AStorageFile: string; ADataFormatVersion: integer);
  +    destructor  Destroy; override;
       procedure BindTo(indexer: TProjectIndexer);
       property SyntaxFilter: TProc<TSyntaxNode> read GetSyntaxFilter write SetSyntaxFilter;
     end; { TDLCache }
  
positive.code: 
  function TDLCache.CleanupFileName(const fileName: string): string;
  begin
    Result := StringReplace(fileName, ':\', '_\', []);
    Result := StringReplace(Result,   '\\', '\_\', []);
    Result := '\' + Result;
  end; { TDLCache.CleanupFileName }
  
  function TDLCache.DateDumpStr(dt: TDateTime): string;
  
negative.code:     FStorage.Initialize(FStorageFile, fmCreate);
      FStorage.FileInfo['/'].Attribute[AttrDataFormatVersion] := IntToStr(ADataFormatVersion);
    end;
    FCacheInfo := TCacheInfo.Create(1000, TIStringComparer.Ordinal);
    LoadCacheInfo('/');
  end; { TDLCache.Create }
  
  destructor TDLCache.Destroy;
  begin
    FreeAndNil(FCacheInfo);
    inherited;
  end; { TDLCache.Destroy }
  
  procedure TDLCache.BindTo(indexer: TProjectIndexer);
  begin
  