/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 Ġ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 . idea . ins pe ctions Ċ Ċ import Ġcom . intellij . openapi . editor . Editor Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Text Range Ċ import Ġorg . jetbrains . kotlin . builtins . Default Built Ins Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . analyze Ċ import Ġorg . jetbrains . kotlin . idea . core . getLast Lambda Expression Ċ import Ġorg . jetbrains . kotlin . idea . ins pe ctions . collections . is Map Ċ import Ġorg . jetbrains . kotlin . idea . intent ions . call Expression Ċ import Ġorg . jetbrains . kotlin . idea . util . callee Text Range In This Ċ import Ġorg . jetbrains . kotlin . psi . Kt Call Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Dot Qualified Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Lambda Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . resolve . calls . call Util . get Resolved Call Ċ import Ġorg . jetbrains . kotlin . resolve . calls . call Util . getType Ċ import Ġorg . jetbrains . kotlin . resolve . lazy . Body Resolve Mode Ċ import Ġorg . jetbrains . kotlin . synt hetic . is Resolved With Sam Conversions Ċ Ċ class ĠJava Map ForEach Inspection Ġ: ĠAbstract Applic ability Based Inspection < Kt Dot Qualified Expression >( ĊĠĠĠ ĠK t Dot Qualified Expression :: class . java Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġis Applicable ( element : ĠK t Dot Qualified Expression ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall Expression Ġ= Ġelement . call Expression Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġcal lee Expression Ġ= Ġcall Expression . callee Expression Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( callee Expression . text Ġ!= Ġ" forEach ") Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġlambda Ġ= Ġcall Expression . lambda () Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġlambda Parameters Ġ= Ġlambda . value Parameters ĊĠĠĠĠĠĠĠ Ġif Ġ( lambda Parameters . size Ġ!= Ġ 2 Ġ|| Ġlambda Parameters . any Ġ{ Ġit . destruct uring Declaration Ġ!= Ġnull Ġ}) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġelement . analyze ( Body Resolve Mode . PAR TIAL ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! element . receiver Expression . getType ( context ). is Map ( Default Built Ins . Instance )) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġresolved Call Ġ= Ġcall Expression . get Resolved Call ( context ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġresolved Call . is Resolved With Sam Conversions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinspection Highlight Range In Element ( element : ĠK t Dot Qualified Expression ): ĠText Range ? Ġ= Ġelement . callee Text Range In This () ĊĊĠĠĠ Ġoverride Ġfun Ġinspection Text ( element : ĠK t Dot Qualified Expression ) Ġ= Ġ" Java ĠMap . forEach Ġmethod Ġcall Ġshould Ġbe Ġreplaced Ġwith ĠKotlin 's ĠforEach " ĊĊĠĠĠ Ġoverride Ġval Ġdefault Fix Text Ġ= Ġ" Replace Ġwith ĠKotlin 's ĠforEach " ĊĊĠĠĠ Ġoverride Ġfun Ġapply To ( element : ĠK t Dot Qualified Expression , Ġproject : ĠProject , Ġeditor : ĠEditor ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġelement . call Expression Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġlambda Ġ= Ġcall . lambda () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġvalue Parameters Ġ= Ġlambda . value Parameters ĊĠĠĠĠĠĠĠ Ġlambda . function Literal . value Parameter List ?. replace ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK t Psi Factory ( call ). create Lambda Parameter List (" (${ value Parameters [ 0 ]. text }, Ġ${ value Parameters [ 1 ]. text }) ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠK t Call Expression . lambda (): ĠK t Lambda Expression ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlambda Arguments . single OrNull ()?. get Argument Expression () Ġas ? ĠK t Lambda Expression Ġ?: ĠgetLast Lambda Expression () ĊĠĠĠ Ġ} Ċ }