/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 Ġ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 . jvm Ċ Ċ import Ġorg . jetbrains . kotlin . builtins . Standard Names Ċ import Ġorg . jetbrains . kotlin . descriptors .* Ċ import Ġorg . jetbrains . kotlin . resolve . Descriptor Utils Ċ import Ġorg . jetbrains . kotlin . resolve . descriptor Util . fq Name Safe Ċ import Ġorg . jetbrains . kotlin . resolve . is Inline Class Ċ import Ġorg . jetbrains . kotlin . resolve . is Inline ClassType Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Ċ import Ġorg . jetbrains . kotlin . types . type Util . represent ative Upper Bound Ċ Ċ fun Ġshould Hide Constructor Due To Inline ClassType Value Parameters ( descriptor : ĠCallable Member Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġconstructor Descriptor Ġ= Ġdescriptor Ġas ? ĠClass Constructor Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ( Descriptor Vis ibilities . is Private ( constructor Descriptor . visibility )) Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ( constructor Descriptor . construct ed Class . is Inline Class ()) Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ( Descriptor Utils . is Se aled Class ( constructor Descriptor . construct ed Class )) Ġreturn Ġfalse ĊĊĠĠĠ Ġ// ĠTODO Ġinner Ġclass Ġin Ġinline Ġclass ĊĊĠĠĠ Ġreturn Ġconstructor Descriptor . value Parameters . any Ġ{ Ġit . type . requires FunctionName M angling In Parameter Types () Ġ} Ċ } Ċ Ċ fun Ġrequires FunctionName M angling For Parameter Types ( descriptor : ĠCallable Member Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġextension Receiver Type Ġ= Ġdescriptor . extension Receiver Parameter ?. type ĊĠĠĠ Ġreturn Ġextension Receiver Type Ġ!= Ġnull Ġ&& Ġextension Receiver Type . requires FunctionName M angling In Parameter Types () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor . value Parameters . any Ġ{ Ġit . type . requires FunctionName M angling In Parameter Types () Ġ} Ċ } Ċ Ċ // ĠNB Ġfunctions Ġreturning Ġall Ġinline Ġclasses Ġ( including Ġour Ġspecial Ġ' kotlin . Result ') Ġshould Ġbe Ġm angled . Ċ fun Ġrequires FunctionName M angling For ReturnType ( descriptor : ĠCallable Member Descriptor ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( descriptor . containing Declaration Ġ! is ĠClass Descriptor ) Ġreturn Ġfalse ĊĠĠĠ Ġval ĠreturnType Ġ= Ġdescriptor . returnType Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn ĠreturnType . is Inline ClassType () Ġ|| ĠreturnType . is Type Parameter With Upper Bound That Requires M angling () Ċ } Ċ Ċ fun ĠDeclaration Descriptor . is Inline Class That Requires M angling (): ĠBoolean Ġ= ĊĠĠĠ Ġis Inline Class () Ġ&& Ġ! is Dont M angle Class ( this Ġas ĠClass Descriptor ) Ċ Ċ fun ĠKotlin Type . is Inline Class That Requires M angling () Ġ= ĊĠĠĠ Ġconstructor . declaration Descriptor ?. is Inline Class That Requires M angling () Ġ== Ġtrue Ċ Ċ private Ġfun ĠKotlin Type . requires FunctionName M angling In Parameter Types () Ġ= ĊĠĠĠ Ġis Inline Class That Requires M angling () Ġ|| Ġis Type Parameter With Upper Bound That Requires M angling () Ċ Ċ private Ġfun Ġis Dont M angle Class ( class Descriptor : ĠClass Descriptor ) Ġ= ĊĠĠĠ Ġclass Descriptor . fq Name Safe Ġ== ĠStandard Names . RESULT _ FQ _ NAME Ċ Ċ private Ġfun ĠKotlin Type . is Type Parameter With Upper Bound That Requires M angling (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġdescriptor Ġ= Ġconstructor . declaration Descriptor Ġas ? ĠType Parameter Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġdescriptor . represent ative Upper Bound . requires FunctionName M angling In Parameter Types () Ċ } Ċ