/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 Ġ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 . analysis . api . descriptors . symbols . psi Based Ċ Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . Fe 1 0 Analysis Facade . Analysis Mode Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . Kt Fe 1 0 Analysis Session Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . symbols . descriptor Based . base . kt Visibility Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . symbols . descriptor Based . base . to Kt Type Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . symbols . descriptor Based . base . to Kt Type And Annotations Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . symbols . pointers . Kt Fe 1 0 Never Rest oring Symbol Pointer Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . symbols . psi Based . base .* Ċ import Ġorg . jetbrains . kotlin . analysis . api . descriptors . utils . cached Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . Kt Function Symbol Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . Kt Type Parameter Symbol Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . Kt Value Parameter Symbol Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . markers . Kt Symbol Kind Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . markers . Kt Type And Annotations Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . pointers . Kt Psi Based Symbol Pointer Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . pointers . Kt Symbol Pointer Ċ import Ġorg . jetbrains . kotlin . analysis . api . types . Kt Type Ċ import Ġorg . jetbrains . kotlin . analysis . api . with Validity Assertion Ċ import Ġorg . jetbrains . kotlin . descriptors . Function Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . Modal ity Ċ import Ġorg . jetbrains . kotlin . descriptors . Vis ibilities Ċ import Ġorg . jetbrains . kotlin . descriptors . Visibility Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . name . Callable Id Ċ import Ġorg . jetbrains . kotlin . name . Name Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . psi . Kt Object Declaration Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . containing Class Or Object Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . is Extension Declaration Ċ import Ġorg . jetbrains . kotlin . resolve . Binding Context Ċ Ċ internal Ġclass ĠK t Fe 1 0 Psi Function Symbol ( ĊĠĠĠ Ġoverride Ġval Ġpsi : ĠK t Named Function , ĊĠĠĠ Ġoverride Ġval Ġanalysis Session : ĠK t Fe 1 0 Analysis Session Ċ ) Ġ: ĠK t Function Symbol (), ĠK t Fe 1 0 Psi Symbol < Kt Named Function , ĠFunction Descriptor > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠFunction Descriptor ? Ġby Ġcached Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Context Ġ= Ġanalysis Session . analyze ( psi , ĠAnalysis Mode . PAR TIAL ) ĊĠĠĠĠĠĠĠ Ġbinding Context [ Binding Context . FUNCTION , Ġpsi ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Suspend : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . SUS PEND _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Operator : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . OPERATOR _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis External : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . EXTERNAL _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Inline : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . INLINE _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Override : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . OVERRIDE _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠisIn fix : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . has Modifier ( Kt Tokens . IN FIX _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Static : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġfalse Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvalue Parameters : ĠList < Kt Value Parameter Symbol > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . value Parameters . map Ġ{ ĠK t Fe 1 0 Psi Value Parameter Symbol ( it , Ġanalysis Session ) Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġhas Stable Parameter Names : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġtrue Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcallable Id If Non Local : ĠCallable Id ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . callable Id Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġannotated Type : ĠK t Type And Annotations ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġdescriptor ?. returnType ?. to Kt Type And Annotations ( analysis Session ) Ġ?: Ġcreate ErrorType And Annotations () Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġreceiver Type : ĠK t Type And Annotations ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( psi . is Extension Declaration ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptor ?. extension Receiver Parameter ?. type ?. to Kt Type And Annotations ( analysis Session ) Ġ?: Ġcreate ErrorType And Annotations () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Extension : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . is Extension Declaration () Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsymbol Kind : ĠK t Symbol Kind ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . kt Symbol Kind Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġname : ĠName ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . name As Safe Name Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdispatch Type : ĠK t Type ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontaining Class Ġ= Ġpsi . containing Class Or Object ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( containing Class Ġ== Ġnull Ġ|| Ġcontaining Class Ġis ĠK t Object Declaration ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdescriptor ?. dispatch Receiver Parameter ?. type ?. to Kt Type ( analysis Session ) Ġ?: Ġcreate ErrorType () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġtype Parameters : ĠList < Kt Type Parameter Symbol > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . type Parameters . map Ġ{ ĠK t Fe 1 0 Psi Type Parameter Symbol ( it , Ġanalysis Session ) Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmod ality : ĠMod ality ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . kt Modal ity Ġ?: Ġdescriptor ?. modal ity Ġ?: ĠMod ality . FINAL Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvisibility : ĠVisibility ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġpsi . kt Visibility Ġ?: Ġdescriptor ?. kt Visibility Ġ?: ĠVis ibilities . Public Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Pointer (): ĠK t Symbol Pointer < Kt Function Symbol > Ġ= Ġwith Validity Assertion Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠK t Psi Based Symbol Pointer . create For Symbol From Source ( this ) Ġ?: ĠK t Fe 1 0 Never Rest oring Symbol Pointer () ĊĠĠĠ Ġ} Ċ }