/* Ċ Ġ* Ġ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 . analysis . api . fir . symbols Ċ Ċ import Ġcom . intellij . psi . Psi Element Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . Kt Symbol By F ir Builder Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . annotations . Kt F ir Annotation List For Declaration Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . find Psi Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . symbols . pointers . Kt F ir Constructor Symbol Pointer Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . symbols . pointers . create Signature Ċ import Ġorg . jetbrains . kotlin . analysis . api . fir . utils . cached Ċ import Ġorg . jetbrains . kotlin . analysis . api . symbols . Kt Constructor 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 . pointers . Can Not Create Symbol Pointer For Local Library Declaration Exception Ċ 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 . tokens . Validity Token Ċ import Ġorg . jetbrains . kotlin . analysis . api . types . Kt Type Ċ import Ġorg . jetbrains . kotlin . analysis . api . with Validity Assertion Ċ import Ġorg . jetbrains . kotlin . analysis . low . level . api . fir . api . LL F ir Module Resolve State Ċ import Ġorg . jetbrains . kotlin . descriptors . Visibility Ċ import Ġorg . jetbrains . kotlin . fir . containing Class Ċ import Ġorg . jetbrains . kotlin . fir . declarations . utils . visibility Ċ import Ġorg . jetbrains . kotlin . fir . resolve . get Has Stable Parameter Names Ċ import Ġorg . jetbrains . kotlin . fir . symbols . impl . F ir Constructor Symbol Ċ import Ġorg . jetbrains . kotlin . name . Class Id Ċ Ċ internal Ġclass ĠK t F ir Constructor Symbol ( ĊĠĠĠ Ġoverride Ġval Ġfir Symbol : ĠF ir Constructor Symbol , ĊĠĠĠ Ġoverride Ġval Ġresolve State : ĠLL F ir Module Resolve State , ĊĠĠĠ Ġoverride Ġval Ġtoken : ĠValid ity Token , ĊĠĠĠ Ġprivate Ġval Ġbuilder : ĠK t Symbol By F ir Builder Ċ ) Ġ: ĠK t Constructor Symbol (), ĠK t F ir Symbol < F ir Constructor Symbol > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpsi : ĠPsi Element ? Ġby Ġcached Ġ{ Ġfir Symbol . find Psi () Ġ} ĊĠĠĠĠĊĠĠĠ Ġoverride Ġval ĠreturnType : ĠK t Type Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġfir Symbol . returnType ( builder ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvalue Parameters : ĠList < Kt Value Parameter Symbol > Ġby Ġcached Ġ{ Ġfir Symbol . create Kt Value Parameters ( builder ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġhas Stable Parameter Names : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfir Symbol . fir . get Has Stable Parameter Names ( fir Symbol . module Data . session ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġvisibility : ĠVisibility Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġfir Symbol . visibility Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġannotations List Ġby Ġcached Ġ{ ĠK t F ir Annotation List For Declaration . create ( fir Symbol , Ġresolve State . root Module Session , Ġtoken ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcontaining Class Id If Non Local : ĠClass Id ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġfir Symbol . containing Class ()?. class Id ?. take Unless Ġ{ Ġit . is Local Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Primary : ĠBoolean Ġget () Ġ= Ġwith Validity Assertion Ġ{ Ġfir Symbol . is Primary Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġtype Parameters Ġby Ġcached Ġ{ Ġfir Symbol . create Kt Type Parameters ( builder ) Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġcreate Pointer (): ĠK t Symbol Pointer < Kt Constructor Symbol > Ġ= Ġwith Validity Assertion Ġ{ ĊĠĠĠĠĠĠĠ ĠK t Psi Based Symbol Pointer . create For Symbol From Source ( this )?. let Ġ{ Ġreturn Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( symbol Kind Ġ== ĠK t Symbol Kind . LOCAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠCan Not Create Symbol Pointer For Local Library Declaration Exception (" constructor ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġowner Class Id Ġ= Ġcontaining Class Id If Non Local ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġerror (" Class Id Ġshould Ġpresent Ġfor Ġmember Ġdeclaration ") ĊĠĠĠĠĠĠĠ Ġreturn ĠK t F ir Constructor Symbol Pointer ( owner Class Id , Ġis Primary , Ġfir Symbol . fir . create Signature ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ= Ġsymbol Equals ( other ) ĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ= Ġsymbol HashCode () Ċ } Ċ