/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 Ġ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 . lazy Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . fir . backend . F ir 2 Ir Components Ċ import Ġorg . jetbrains . kotlin . fir . backend . to Ir Type Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Member Declaration Ċ import Ġorg . jetbrains . kotlin . fir . declarations . F ir Type Parameter Ċ import Ġorg . jetbrains . kotlin . fir . symbols . F ir 2 Ir Bind able Symbol Ċ import Ġorg . jetbrains . kotlin . ir . Ir Element Base Ċ import Ġorg . jetbrains . kotlin . ir . Obsolete Descriptor Based API Ċ import Ġorg . jetbrains . kotlin . ir . declarations .* Ċ import Ġorg . jetbrains . kotlin . ir . declarations . lazy . lazy Var Ċ import Ġorg . jetbrains . kotlin . ir . expressions . Ir Constructor Call Ċ Ċ abstract Ġclass ĠAbstract F ir 2 Ir Lazy Declaration < F Ġ: ĠF ir Member Declaration , ĠD Ġ: ĠIr Symbol Owner >( ĊĠĠĠ Ġprivate Ġval Ġcomponents : ĠF ir 2 Ir Components , ĊĠĠĠ Ġstart Offset : ĠInt , ĊĠĠĠ Ġend Offset : ĠInt , ĊĠĠĠ Ġoverride Ġvar Ġorigin : ĠIr Declaration Origin , ĊĠĠĠ Ġval Ġfir : ĠF , ĊĠĠĠ Ġopen Ġval Ġsymbol : ĠF ir 2 Ir Bind able Symbol < *, ĠD > Ċ ) Ġ: ĠIr Element Base ( start Offset , Ġend Offset ), ĠIr Declaration , ĠIr Declaration Parent , ĠF ir 2 Ir Components Ġby Ġcomponents Ġ{ ĊĠĠĠ Ġinternal Ġfun Ġprepare Type Parameters () Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Parameters Ġ= Ġfir . type Parameters . map Indexed NotNull Ġ{ Ġindex , Ġtype Parameter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Parameter Ġ! is ĠF ir Type Parameter ) Ġreturn @ map Indexed NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier Storage . get Ir Type Parameter ( type Parameter , Ġindex ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Ġ= Ġthis @ Abstract F ir 2 Ir Lazy Declaration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( super Types . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Parameter . bounds . map To ( super Types ) Ġ{ Ġit . to Ir Type ( type Converter ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġtype Parameters : ĠList < Ir Type Parameter > ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġparent : ĠIr Declaration Parent ĊĊĠĠĠ Ġ@ Obsolete Descriptor Based API ĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠDeclaration Descriptor ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsymbol . descriptor ĊĊĠĠĠ Ġoverride Ġvar Ġannotations : ĠList < Ir Constructor Call > Ġby Ġlazy Var Ġ{ ĊĠĠĠĠĠĠĠ Ġfir . annotations . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Generator . convertTo Ir Constructor Call ( it ) Ġas ? ĠIr Constructor Call ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ