/* Ċ Ġ* Ġ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 . resolve . check ers Ċ Ċ import Ġorg . jetbrains . kotlin . config . Language Feature Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . Function Descriptor Ċ import Ġorg . jetbrains . kotlin . diagnostics . Errors Ċ import Ġorg . jetbrains . kotlin . psi . Kt Declaration Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . resolve . is Effect ively Final Ċ Ċ object ĠTail rec Function Checker Ġ: ĠDeclaration Checker Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcheck ( declaration : ĠK t Declaration , Ġdescriptor : ĠDeclaration Descriptor , Ġcontext : ĠDeclaration Checker Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( declaration Ġ! is ĠK t Named Function Ġ|| Ġdescriptor Ġ! is ĠFunction Descriptor Ġ|| Ġ! descriptor . is Tail rec ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ( descriptor . is Effect ively Final ( false )) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! context . language Version Settings . supports Feature ( Language Feature . Pro hibit Tail rec On Virtual Member )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . trace . report ( Errors . TAIL REC _ ON _ VIRTUAL _ MEMBER . on ( declaration )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . trace . report ( Errors . TAIL REC _ ON _ VIRTUAL _ MEMBER _ ERROR . on ( declaration )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }