diff --git a/compiler/packages/fcl-passrc/src/pasuseanalyzer.pas b/compiler/packages/fcl-passrc/src/pasuseanalyzer.pas index 58df3cd..0e8ef91 100644 --- a/compiler/packages/fcl-passrc/src/pasuseanalyzer.pas +++ b/compiler/packages/fcl-passrc/src/pasuseanalyzer.pas @@ -1020,7 +1020,10 @@ begin repeat El:=El.Parent; if not (El is TPasType) then break; - MarkElementAsUsed(El); + UseType(TPasType(El),paumElement); + //MarkElementAsUsed(El); + //if El is TPasMembersType then + // UseClassConstructor(TPasMembersType(El)); until false; end; @@ -1955,6 +1958,9 @@ begin else begin if ElementVisited(El,Mode) then exit; + // this class has been used (e.g. paumElement), which marked ancestors + // and published members + // -> now mark all members paumAllPasUsable FirstTime:=false; end; end; @@ -1981,8 +1987,6 @@ begin end; ClassScope:=aClass.CustomData as TPasClassScope; - if ClassScope=nil then - exit; // ClassScope can be nil if msIgnoreInterfaces if FirstTime then begin