fun asString() = value.toString() } data class BarId(val value: Int) { fun asString() = value.toString() } fun f1(fooId: FooId, barId: BarId) { f2(fooId, barId) } fun f2(fooId: FooId, barId: BarId) { println("${fooId.asString()}, ${barId.asString()}") } /* f1, f2のデコンパイル結果(抜粋・整形済み) */ public static final void f1-Zzqckw8(int fooId, @NotNull BarId barId) { Intrinsics.checkNotNullParameter(barId, "barId"); f2-Zzqckw8(fooId, barId); } public static final void f2-Zzqckw8(int fooId, @NotNull BarId barId) { Intrinsics.checkNotNullParameter(barId, "barId"); String var2 = FooId.asString-impl(fooId) + ", " + barId.asString(); boolean var3 = false; System.out.println(var2); } 6