/* Ċ Ġ* Ġ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 . quick fix . createFrom Usage . create Callable Ċ Ċ import Ġorg . jetbrains . kotlin . diagnostics . Diagnostic Ċ import Ġorg . jetbrains . kotlin . idea . cache s . resolve . analyze With All Compiler Checks Ċ import Ġorg . jetbrains . kotlin . idea . core . quick fix . Quick Fix Util Ċ import Ġorg . jetbrains . kotlin . idea . quick fix . createFrom Usage . callable Builder . Callable Info Ċ import Ġorg . jetbrains . kotlin . idea . quick fix . createFrom Usage . callable Builder . Function Info Ċ import Ġorg . jetbrains . kotlin . idea . quick fix . createFrom Usage . callable Builder . TypeInfo Ċ import Ġorg . jetbrains . kotlin . idea . quick fix . createFrom Usage . callable Builder . guess Types Ċ import Ġorg . jetbrains . kotlin . lexer . Kt Tokens Ċ import Ġorg . jetbrains . kotlin . psi . Kt Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt File Ċ import Ġorg . jetbrains . kotlin . psi . Kt For Expression Ċ import Ġorg . jetbrains . kotlin . psi . Kt Psi Factory Ċ import Ġorg . jetbrains . kotlin . types . Kotlin Type Factory Ċ import Ġorg . jetbrains . kotlin . types . Type Projection Impl Ċ import Ġorg . jetbrains . kotlin . types . Variance Ċ import Ġorg . jetbrains . kotlin . util . Operator Name Con ventions Ċ import Ġjava . util .* Ċ Ċ object ĠCreate Iterator Function Action Factory Ġ: ĠCreate Callable Member From Usage Factory < Kt For Expression >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Element Of Interest ( diagnostic : ĠDiagnostic ): ĠK t For Expression ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠQuick Fix Util . getParent Element OfType ( diagnostic , ĠK t For Expression :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Callable Info ( element : ĠK t For Expression , Ġdiagnostic : ĠDiagnostic ): ĠCallable Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġdiagnostic . psi File Ġas ? ĠK t File Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġiterable Expr Ġ= Ġelement . loop Range Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġvariable Expr : ĠK t Expression Ġ= Ġ(( element . loop Parameter Ġ?: Ġelement . destruct uring Declaration ) Ġ?: Ġreturn Ġnull ) Ġas ĠK t Expression ĊĠĠĠĠĠĠĠ Ġval Ġiterable Type Ġ= ĠType Info ( iterable Expr , ĠVari ance . IN _ VARI ANCE ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( binding Context , Ġmodule Descriptor ) Ġ= Ġfile . analyze With All Compiler Checks () ĊĊĠĠĠĠĠĠĠ Ġval Ġreturn Jet Type Ġ= Ġmodule Descriptor . built Ins . iterator . default Type ĊĠĠĠĠĠĠĠ Ġval Ġreturn Jet Type Parameter Types Ġ= Ġvariable Expr . guess Types ( binding Context , Ġmodule Descriptor ) ĊĠĠĠĠĠĠĠ Ġif Ġ( return Jet Type Parameter Types . size Ġ!= Ġ 1 ) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġreturn Jet Type ParameterType Ġ= ĠType Projection Impl ( return Jet Type Parameter Types [ 0 ]) ĊĠĠĠĠĠĠĠ Ġval Ġreturn Jet Type Arguments Ġ= ĠCollections . singletonList ( return Jet Type ParameterType ) ĊĠĠĠĠĠĠĠ Ġval Ġnew Return Jet Type Ġ= ĠKotlin Type Factory . simple Type With Non T rivial Member Scope ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Jet Type . annotations , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Jet Type . constructor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Jet Type Arguments , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Jet Type . is Marked Nullable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Jet Type . member Scope ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠreturnType Ġ= ĠType Info ( new Return Jet Type , ĠVari ance . OUT _ VARI ANCE ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFunction Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOperator Name Con ventions . ITERATOR . asString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiterable Type , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier List Ġ= ĠK t Psi Factory ( element ). create Modifier List ( Kt Tokens . OPERATOR _ KEYWORD ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ