# SAM type inference if multiple method overloads accept a fitting SAM type

**URL:** <https://discuss.kotlinlang.org/t/sam-type-inference-if-multiple-method-overloads-accept-a-fitting-sam-type/12149>\
**Category:** Support\
**Created:** [March 28, 2019, 9:07pm UTC](https://discuss.kotlinlang.org/t/sam-type-inference-if-multiple-method-overloads-accept-a-fitting-sam-type/12149 "2019-03-28T21:07:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mriegler](https://avatars.discourse-cdn.com/v4/letter/m/b5ac83/32.png) [@mriegler](https://discuss.kotlinlang.org/u/mriegler)\
**Post date:** [March 28, 2019, 9:07pm UTC](https://discuss.kotlinlang.org/t/sam-type-inference-if-multiple-method-overloads-accept-a-fitting-sam-type/12149/1 "2019-03-28T21:07:46Z")

</div>

I’m having an issue understanding why something works in Java, but not in Kotlin.

I have two SAM Interfaces ([SerializiableFunction](https://beam.apache.org/releases/javadoc/2.11.0/org/apache/beam/sdk/transforms/SerializableFunction.html), [ProcessFunction](https://beam.apache.org/releases/javadoc/2.11.0/org/apache/beam/sdk/transforms/ProcessFunction.html)).

I have two method overloads that accept these SAMs on the same class, e.g.:

```
public static void function(SerializableFunction<String, String> sf) {}
public static void function(ProcessFunction<String, String> pf) {}

```

In Java, i can do function(s → s) without issues, but in Kotlin it complains:

```
Error:(31, 14) Kotlin: Cannot choose among the following candidates without completing type inference

```

Why does this work in Java? Both method overloads would apply here, so it ought to either not work or work in both, right?

---

<div class="post-metadata">

**Author:** ![Alexey.Belkov](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/alexey.belkov/32/5215_2.png) [@Alexey.Belkov](https://discuss.kotlinlang.org/u/Alexey.Belkov)\
**Post date:** [April 8, 2019, 12:29pm UTC](https://discuss.kotlinlang.org/t/sam-type-inference-if-multiple-method-overloads-accept-a-fitting-sam-type/12149/2 "2019-04-08T12:29:41Z")

</div>

This looks like a bug in Kotlin type inference. Can you please report an issue at [http://kotl.in/issue](http://kotl.in/issue) with a self-contained sample project to reproduce? Thanks!

Note: I tried searching [https://youtrack.jetbrains.com/issues?q=Subtask%20of:%20KT-4066%20%23Unresolved%20](https://youtrack.jetbrains.com/issues?q=Subtask%20of:%20KT-4066%20%23Unresolved%20) but doesn’t look like this particular problem has been reported yet.
