FILE: chooseOverloadByShapeOfLambda.kt public final fun foo(x: R|(@R|kotlin/ParameterName|(name = String(a)) kotlin/Int) -> kotlin/Unit|): R|kotlin/Int| { ^foo Int(1) } public final fun foo(x: R|(@R|kotlin/ParameterName|(name = String(a)) kotlin/Int, @R|kotlin/ParameterName|(name = String(b)) kotlin/String) -> kotlin/Unit|): R|kotlin/String| { ^foo String() } public final fun takeInt(x: R|kotlin/Int|): R|kotlin/Unit| { } public final fun takeString(x: R|kotlin/String|): R|kotlin/Unit| { } public final fun test_1(): R|kotlin/Unit| { lval res: R|kotlin/Int| = R|/foo|( = foo@fun (x: R|@R|kotlin/ParameterName|(name = String(a)) kotlin/Int|): R|kotlin/Unit| { ^@foo Unit } ) R|/takeInt|(R|/res|) } public final fun test_2(): R|kotlin/Unit| { lval res: R|kotlin/String| = R|/foo|( = foo@fun (x: R|@R|kotlin/ParameterName|(name = String(a)) kotlin/Int|, y: R|@R|kotlin/ParameterName|(name = String(b)) kotlin/String|): R|kotlin/Unit| { ^@foo Unit } ) R|/takeString|(R|/res|) } public final fun test_3(): R|kotlin/Unit| { lval res: R|kotlin/Int| = R|/foo|( = foo@fun (it: R|@R|kotlin/ParameterName|(name = String(a)) kotlin/Int|): R|kotlin/Unit| { ^@foo Unit } ) R|/takeInt|(R|/res|) }