Make `same` return non-null type
diff --git a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
index 6d62267..e53e993 100644
--- a/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
+++ b/mockito-kotlin/src/main/kotlin/com/nhaarman/mockito_kotlin/Mockito.kt
@@ -236,7 +236,7 @@
 
 fun <T> reset(vararg mocks: T) = Mockito.reset(*mocks)
 
-fun <T> same(value: T): T? = Mockito.same(value) ?: value
+fun <T> same(value: T): T = Mockito.same(value) ?: value
 
 inline fun <reified T : Any> spy(): T = Mockito.spy(T::class.java)!!
 fun <T> spy(value: T): T = Mockito.spy(value)!!
diff --git a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
index d5055a7..c897c93 100644
--- a/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
+++ b/mockito-kotlin/src/test/kotlin/test/MockitoTest.kt
@@ -983,4 +983,28 @@
             verify(this).nullableString(isA<String>())
         }
     }
+
+    @Test
+    fun same_withNonNullArgument() {
+        mock<Methods>().apply {
+            string("")
+            verify(this).string(same(""))
+        }
+    }
+
+    @Test
+    fun same_withNullableNonNullArgument() {
+        mock<Methods>().apply {
+            nullableString("")
+            verify(this).nullableString(same(""))
+        }
+    }
+
+    @Test
+    fun same_withNullArgument() {
+        mock<Methods>().apply {
+            nullableString(null)
+            verify(this).nullableString(same(null))
+        }
+    }
 }
\ No newline at end of file