浏览代码

fcl-passrc: useanalyzer: mark attributes of class/record type even if typeinfo is not used

git-svn-id: trunk@47283 -
Mattias Gaertner 4 年之前
父节点
当前提交
6ed331d6e7
共有 2 个文件被更改,包括 9 次插入2 次删除
  1. 2 0
      packages/fcl-passrc/src/pasuseanalyzer.pas
  2. 7 2
      packages/fcl-passrc/tests/tcuseanalyzer.pas

+ 2 - 0
packages/fcl-passrc/src/pasuseanalyzer.pas

@@ -2388,6 +2388,8 @@ begin
           RaiseNotSupported(20180328224632,aClass,GetObjName(o));
         end;
     end;
+
+  UseAttributes(El);
 end;
 
 procedure TPasAnalyzer.UseClassConstructor(El: TPasMembersType);

+ 7 - 2
packages/fcl-passrc/tests/tcuseanalyzer.pas

@@ -3428,15 +3428,20 @@ begin
   '  TObject = class',
   '    constructor {#TObject_Create_used}Create;',
   '  end;',
+  '  {#TRedAttribute_notused}TRedAttribute = class',
+  '  end;',
   '  {#TCustomAttribute_used}TCustomAttribute = class',
   '  end;',
   '  [TCustom]',
   '  TBird = class;',
   '  TMyInt = word;',
   '  TBird = class end;',
-  'constructor TObject.Create; begin end;',
+  'constructor TObject.Create;',
+  'begin',
+  'end;',
+  'var b: TBird;',
   'begin',
-  '  if typeinfo(TBird)=nil then ;',
+  '  b:=TBird.Create;',
   '']);
   AnalyzeWholeProgram;
 end;