From caf8017e04c558780e606550663add1e84dabf45 Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 4 Mar 2019 13:23:08 +0000 Subject: [PATCH] fcl-passrc: when using members, use parent type --- compiler/packages/fcl-passrc/src/pasuseanalyzer.pas | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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