/* Ċ Ġ* Ġ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 . fir . analysis . check ers . expression Ċ Ċ import Ġorg . jetbrains . kotlin . fir . analysis . check ers . context . Checker Context Ċ import Ġorg . jetbrains . kotlin . fir . analysis . diagnostics . Diagnostic Reporter Ċ import Ġorg . jetbrains . kotlin . fir . analysis . diagnostics . F ir Errors Ċ import Ġorg . jetbrains . kotlin . fir . analysis . diagnostics . report On Ċ import Ġorg . jetbrains . kotlin . fir . expressions . F ir Function Call Ċ import Ġorg . jetbrains . kotlin . fir . expressions . F ir Function Call Origin Ċ import Ġorg . jetbrains . kotlin . fir . expressions . F ir Operation Name Con ventions Ċ import Ġorg . jetbrains . kotlin . fir . references . F ir Resolved Named Reference Ċ import Ġorg . jetbrains . kotlin . fir . symbols . impl . F ir Named Function Symbol Ċ import Ġorg . jetbrains . kotlin . fir . types . cone Type Ċ import Ġorg . jetbrains . kotlin . fir . types . is Unit Ċ Ċ object ĠF ir Assignment Operator Call Checker Ġ: ĠF ir Function Call Checker () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcheck ( expression : ĠF ir Function Call , Ġcontext : ĠCheck er Context , Ġreporter : ĠDiagnostic Reporter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresolved Cal lee Ġ= Ġexpression . callee Reference Ġas ? ĠF ir Resolved Named Reference Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġresolved Cal lee Symbol Ġ= Ġresolved Cal lee . resolved Symbol Ġas ? ĠF ir Named Function Symbol Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġresolved Cal lee Name Ġ= Ġresolved Cal lee Symbol . name ĊĠĠĠĠĠĠĠ Ġif Ġ( expression . origin Ġ!= ĠF ir Function Call Origin . Operator Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Cal lee Name Ġ! in ĠF ir Operation Name Con ventions . ASSIGN MENT _ NAMES ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! expression . type Ref . cone Type . is Unit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreporter . report On ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpression . source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF ir Errors . ASSIGN MENT _ OPERATOR _ SHO ULD _ RETURN _ UNIT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Cal lee Symbol , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF ir Operation Name Con ventions . ASSIGN MENT _ NAMES [ resolved Cal lee Name ] !!. operator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }