/* Ċ Ġ* Ġ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 . impl . base . components Ċ Ċ import Ġorg . jetbrains . kotlin . analysis . api . calls . Kt Compound Access Ċ import Ġorg . jetbrains . kotlin . analysis . api . calls . Kt Explicit Receiver Value Ċ import Ġorg . jetbrains . kotlin . analysis . api . components . Kt Call Resolver Ċ import Ġorg . jetbrains . kotlin . analysis . api . impl . bare bone . parent OfType Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . psi .* Ċ Ċ abstract Ġclass ĠAbstract Kt Call Resolver Ġ: ĠK t Call Resolver () Ġ{ ĊĊĠĠĠ Ġprotected Ġfun ĠK t Binary Expression . get Compound Assign Kind (): ĠK t Compound Access . Compound Assign . Kind Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcompound Assign Kind Ġ= Ġwhen Ġ( operation Token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . PL USE Q Ġ-> ĠK t Compound Access . Compound Assign . Kind . PLUS _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . MIN USE Q Ġ-> ĠK t Compound Access . Compound Assign . Kind . MINUS _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . MUL TE Q Ġ-> ĠK t Compound Access . Compound Assign . Kind . TIMES _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . PER CE Q Ġ-> ĠK t Compound Access . Compound Assign . Kind . REM _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . DI VE Q Ġ-> ĠK t Compound Access . Compound Assign . Kind . DIV _ ASSIGN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" unexpected Ġoperator Ġ$ operation Token ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcompound Assign Kind ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠK t Unary Expression . getIn Or Dec Operation Kind (): ĠK t Compound Access . Inc Or Dec Operation . Kind Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinc Or Dec Operation Kind Ġ= Ġwhen Ġ( operation Token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . PLUS PLUS Ġ-> ĠK t Compound Access . Inc Or Dec Operation . Kind . INC ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Tokens . MINUS MINUS Ġ-> ĠK t Compound Access . Inc Or Dec Operation . Kind . DEC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" unexpected Ġoperator Ġ$ operation Token ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġinc Or Dec Operation Kind ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun ĠK t Expression . to Explicit Receiver Value (): ĠK t Explicit Receiver Value Ġ= ĊĠĠĠĠĠĠĠ ĠK t Explicit Receiver Value ( this , Ġis Receiver Of Kt Safe Qualified Expression (), Ġtoken ) ĊĊĠĠĠ Ġprivate Ġfun ĠK t Expression . is Receiver Of Kt Safe Qualified Expression (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsafe Qualified Expression Ġ= Ġparent OfType < Kt Safe Qualified Expression >() Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn ĠK t Psi Util . de parent hesize ( safe Qualified Expression . receiver Expression ) Ġ== ĠK t Psi Util . de parent hesize ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnon Call Binary Operator Ġ= Ġset Of ( Kt Tokens . EL VIS , ĠK t Tokens . EQ EQ EQ , ĠK t Tokens . EX CLE Q EQ EQ ) ĊĠĠĠ Ġ} Ċ }