package s trait In trait A trait B trait C: A, B fun foo(in1: In, in2: In): T = throw Exception("$in1 $in2") fun test(inA: In, inB: In, inC: In) { foo(inA, inB) val r = foo(inA, inC) r: C val c: C = foo(inA, inB) use(c) } fun bar(in1: In): T = throw Exception("$in1") fun test(inA: In) { val r = bar(inA) r: C } fun use(vararg a: Any?) = a