/* Ċ Ġ* Ġ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 . test . pre processors Ċ Ċ import Ġorg . jetbrains . kotlin . test . model . Test File Ċ import Ġorg . jetbrains . kotlin . test . services . SourceFile Pre processor Ċ import Ġorg . jetbrains . kotlin . test . services . Test Services Ċ Ċ class ĠIr Interpreter Implicit Kotlin Imports ( test Services : ĠTest Services ) Ġ: ĠSource File Pre processor ( test Services ) Ġ{ ĊĠĠĠ Ġprivate Ġfun ĠString . add Implicit Kotlin Import ( fileName : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadditional Imports Ġ= Ġwhen Ġ( fileName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" U Byte . kt ", Ġ" U Short . kt ", Ġ" UInt . kt ", Ġ" UL ong . kt " Ġ-> ĠlistOf (" kotlin . ranges .* ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf (" kotlin .* ", Ġ" kotlin . ranges .* ", Ġ" kotlin . sequences .* ", Ġ" kotlin . collections .* ") ĊĠĠĠĠĠĠĠ Ġ}. join ToString ( separator Ġ= Ġ"\ n ") Ġ{ Ġ" import Ġ$ it " Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġthis . split ("\ n "). to Mutable List () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġindex Ġ= Ġlines . indexOf First Ġ{ Ġit . startsWith (" package Ġ") Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġlines . add ( 0 , Ġadditional Imports ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġlines . add ( index Ġ+ Ġ 1 , Ġadditional Imports ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlines . join ToString ( separator Ġ= Ġ"\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprocess ( file : ĠTest File , Ġcontent : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . is Additional ) Ġreturn Ġcontent ĊĠĠĠĠĠĠĠ Ġreturn Ġcontent . add Implicit Kotlin Import ( file . name ) ĊĠĠĠ Ġ} Ċ }