class Processor { fun process(f: () -> R1) : R1 { return f() } fun process(f: (T) -> R2, arg: T) : R2 { return f(arg) } suspend fun processSusp(f: suspend (T) -> R2, arg: T) : R2 { return f(arg) } fun process(f: (T0, T1) -> R3, arg0: T0, arg1: T1) : R3 { return f(arg0, arg1) } fun process( f: (T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T) -> R4, a: T, b: T) : R4 { return f(a,b,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a) } fun processExt(f: T.(T) -> R5, ext: T, arg: T) : R5 { return ext.f(arg) } } class Helper { companion object { fun taint(): String = "taint" fun notaint(): String = "notaint" fun sink(a: Any?) { } } }