package Ġorg . jetbrains . research . kt g lean . index ers . base Ċ Ċ import Ġorg . jetbrains . kotlin . diagnostics . Diagnostic Reporter Ċ import Ġorg . jetbrains . kotlin . fir . F ir Session Ċ import Ġorg . jetbrains . kotlin . fir . analysis . check ers . context . Checker Context Ċ import Ġorg . jetbrains . kotlin . fir . analysis . check ers . expression . Expression Check ers Ċ import Ġorg . jetbrains . kotlin . fir . analysis . check ers . expression . F ir Function Call Checker Ċ import Ġorg . jetbrains . kotlin . fir . analysis . extensions . F ir Additional Check ers Extension Ċ import Ġorg . jetbrains . kotlin . fir . expressions . F ir Function Call Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠF ir Function Call Indexer Ġ: ĠF ir Function Call Checker (), ĠIndex er Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġindex ( call : ĠF ir Function Call , Ġcontext : ĠCheck er Context ) ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġcheck ( expression : ĠF ir Function Call , Ġcontext : ĠCheck er Context , Ġreporter : ĠDiagnostic Reporter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġindex ( expression , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfinal Ġoverride Ġfun Ġsingleton Extension (): Ġ( F ir Session ) Ġ-> ĠF ir Additional Check ers Extension Ġ= Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠF ir Additional Check ers Extension ( session ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġexpression Check ers Ġ= Ġobject Ġ: ĠExpression Check ers () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġfunction Call Check ers Ġ= ĠCollections . singleton ( this @ F ir Function Call Indexer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ