/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . fir . java . declarations Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors . Class Kind Ċ import Ġorg . jetbrains . kotlin . descriptors . Modal ity Ċ import Ġorg . jetbrains . kotlin . descriptors . Visibility Ċ import Ġorg . jetbrains . kotlin . fir . F ir Pure Abstract Element Ċ import Ġorg . jetbrains . kotlin . fir . F ir Session Ċ import Ġorg . jetbrains . kotlin . fir . F ir Source Element Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Declaration Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Regular Class Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Resolve Phase Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Type Parameter Ċ import Ġorg . jetbrains . kotlin . fir . declarations . impl . F ir Declaration Status Impl Ċ import Ġorg . jetbrains . kotlin . fir . declarations . impl . F ir Mod ifiable Class Ċ import Ġorg . jetbrains . kotlin . fir . expressions . F ir Annotation Call Ċ import Ġorg . jetbrains . kotlin . fir . java . Java Type Parameter Stack Ċ import Ġorg . jetbrains . kotlin . fir . scopes . F ir Scope Provider Ċ import Ġorg . jetbrains . kotlin . fir . symbols . impl . F ir Regular Class Symbol Ċ import Ġorg . jetbrains . kotlin . fir . types . F ir Type Ref Ċ import Ġorg . jetbrains . kotlin . fir . visitor s . F ir Transformer Ċ import Ġorg . jetbrains . kotlin . fir . visitor s . F ir Visitor Ċ import Ġorg . jetbrains . kotlin . fir . visitor s . transform In place Ċ import Ġorg . jetbrains . kotlin . fir . visitor s . transform Single Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ Ċ class ĠF ir Java Class Ġinternal Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġsource : ĠF ir Source Element ?, ĊĠĠĠ Ġoverride Ġval Ġsession : ĠF ir Session , ĊĠĠĠ Ġoverride Ġval Ġsymbol : ĠF ir Regular Class Symbol , ĊĠĠĠ Ġoverride Ġval Ġname : ĠName , ĊĠĠĠ Ġvisibility : ĠVisibility , ĊĠĠĠ Ġmod ality : ĠMod ality ?, ĊĠĠĠ Ġoverride Ġval Ġclass Kind : ĠClass Kind , ĊĠĠĠ Ġis TopLevel : ĠBoolean , ĊĠĠĠ Ġis Static : ĠBoolean , ĊĠĠĠ Ġoverride Ġval Ġscope Provider : ĠF ir Scope Provider , ĊĠĠĠ Ġinternal Ġval Ġjava Type Parameter Stack : ĠJava Type Parameter Stack , ĊĠĠĠ Ġinternal Ġval Ġexisting Nested Classifier Names : ĠList < Name > Ċ ) Ġ: ĠF ir Pure Abstract Element (), ĠF ir Regular Class , ĠF ir Mod ifiable Class < F ir Regular Class > Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġstatus : ĠF ir Declaration Status Impl Ġ= ĠF ir Declaration Status Impl ( visibility , Ġmod ality ) ĊĠĠĠ Ġoverride Ġval Ġannotations : ĠMutable List < F ir Annotation Call > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġoverride Ġval Ġtype Parameters : ĠMutable List < F ir Type Parameter > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsymbol . bind ( this ) ĊĠĠĠĠĠĠĠ Ġstatus . is Inner Ġ= Ġ! is TopLevel Ġ&& Ġ! is Static ĊĠĠĠĠĠĠĠ Ġstatus . is Companion Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġstatus . is Data Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġstatus . is Inline Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġresolve Phase : ĠF ir Resolve Phase Ġ= ĠF ir Resolve Phase . DECL AR ATIONS ĊĊĠĠĠ Ġoverride Ġval Ġsuper Type Refs Ġ= Ġmutable ListOf < F ir Type Ref >() ĊĊĠĠĠ Ġoverride Ġval Ġdeclarations Ġ= Ġmutable ListOf < F ir Declaration >() ĊĊĠĠĠ Ġoverride Ġval Ġcompanion Object : ĠF ir Regular Class ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġreplace Super Type Refs ( new Super Type Refs : ĠList < F ir Type Ref >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper Type Refs . clear () ĊĠĠĠĠĠĠĠ Ġsuper Type Refs . addAll ( new Super Type Refs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreplace Resolve Phase ( new Resolve Phase : ĠF ir Resolve Phase ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresolve Phase Ġ= Ġnew Resolve Phase ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< R , ĠD > Ġaccept Children ( visitor : ĠF ir Visitor < R , ĠD >, Ġdata : ĠD ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdeclarations . forEach Ġ{ Ġit . accept ( visitor , Ġdata ) Ġ} ĊĠĠĠĠĠĠĠ Ġannotations . forEach Ġ{ Ġit . accept ( visitor , Ġdata ) Ġ} ĊĠĠĠĠĠĠĠ Ġtype Parameters . forEach Ġ{ Ġit . accept ( visitor , Ġdata ) Ġ} ĊĠĠĠĠĠĠĠ Ġstatus . accept ( visitor , Ġdata ) ĊĠĠĠĠĠĠĠ Ġsuper Type Refs . forEach Ġ{ Ġit . accept ( visitor , Ġdata ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< D > Ġtransform Children ( transformer : ĠF ir Transformer < D >, Ġdata : ĠD ): ĠF ir Java Class Ġ{ ĊĠĠĠĠĠĠĠ Ġdeclarations . transform In place ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġannotations . transform In place ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġtype Parameters . transform In place ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus . transform Single ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġsuper Type Refs . transform In place ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< D > Ġtransform Status ( transformer : ĠF ir Transformer < D >, Ġdata : ĠD ): ĠF ir Java Class Ġ{ ĊĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus . transform Single ( transformer , Ġdata ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ } Ċ